Skip to content

Instantly share code, notes, and snippets.

@StasKoval
Created March 30, 2016 12:57
Show Gist options
  • Save StasKoval/9b8ddc0d1a52c0f497d20ce937c4ddb6 to your computer and use it in GitHub Desktop.
Save StasKoval/9b8ddc0d1a52c0f497d20ce937c4ddb6 to your computer and use it in GitHub Desktop.
test
"use strict";
const R = require('ramda');
const app = require('express')();
const Maybe = require('monet').Maybe;
const Left = require('monet').Left;
const Right = require('monet').Right;
const COMMANDS = new Set(['verify','pay','check']);
const AppErrors = new Map();
AppErrors.set('no_query', 'empty query string')
AppErrors.set('invalid_cmd', 'invalid or empty cmd')
const request_validator = (query) => {
//query may be {}
return Maybe
.fromNull(query)
.toEither(AppErrors.get('no_query'))
}
const cmd_validator = (data) => {
const query = data.req.query;
return request_validator(query)
.flatMap(query => COMMANDS.has(query.cmd) ? Right(query.cmd) : Left(AppErrors.get('invalid_cmd')))
}
app.get('/request', (req, res) => {
cmd_validator({req:req, res:res})
.cata( err => {
res.status(500).send({ error: 'something blew up' })
},
valid_cmd => {
res.send('can produce task');
console.log('can produce task')
}
);
});
const server = app.listen(4422, () => {
console.info('listen on 4422');
})
module.exports = server;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment