Created
March 30, 2016 12:57
-
-
Save StasKoval/9b8ddc0d1a52c0f497d20ce937c4ddb6 to your computer and use it in GitHub Desktop.
test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"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