Created
November 16, 2017 05:22
-
-
Save israeleriston/b997c84362374cff066058f36c6dc6ed to your computer and use it in GitHub Desktop.
User for repository using knex query building
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
const { execQuery } = require('../../support/wrapQuery') | |
const { filterBy, insertBy } = require('../../support/wrapRepository') | |
const knex = require('../../config/db') | |
const query = knex('users') | |
const filterUserByUsername = (req) => { | |
const filterByUsername = filterBy('username', req.body.username) | |
return execQuery(filterByUsername, query) | |
.then(result => { | |
console.log(' result ' + resul) | |
console.log(' resul ob ' + JSON.stringify(resul)) | |
return result | |
}).catch(err => { | |
return err | |
}) | |
} | |
const insertUser = (req) => { | |
const userCreated = insertBy(req.body) | |
console.log(' userCreated ' + userCreated) | |
return execQuery(userCreated, query) | |
} | |
module.exports = { filterUserByUsername, insertUser } |
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
const Boom = require('boom') | |
const { filterUserByUsername, insertUser } = require('./userRepository') | |
const { isEmpty } = require('lodash') | |
const createUser = (req, reply) => { | |
// error here, object users is every [Object Promise], why ?? | |
// must be the result of the query filterUserByUsername(req) and not [Object Promise] | |
const users = filterUserByUsername(req) | |
console.log(' exists user stringfy ' + JSON.stringify(users)) | |
console.log(' exists usr ' + users) | |
if (!isEmpty(users)) { | |
reply.send(Boom.conflict('user already exists')) | |
} | |
if (isEmpty(users)) { | |
console.log(' is rejected create ' + users.isRejected()) | |
const userCreated = insertUser(req) | |
reply.send({ message: 'user created', data: userCreated }).code(201) | |
} | |
} | |
module.exports = createUser |
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
const execQuery = (fn, query) => { | |
return fn(query) | |
.then(result => { | |
return result | |
}).catch(err => { | |
return err | |
}) | |
} | |
module.exports = { execQuery } |
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
const filterBy = (field, param) => { | |
return (query) => { | |
return query.where(field, param) | |
} | |
} | |
const insertBy = (domain) => { | |
return (query) => { | |
return query.insert(domain) | |
} | |
} | |
module.exports = { filterBy, insertBy } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment