Boom #4

Merged
joeybaker merged 3 commits from boom into master 2016-06-30 13:44:07 +00:00
2 changed files with 12 additions and 4 deletions

View File

@ -29,6 +29,7 @@
}, },
"dependencies": { "dependencies": {
"babel": "5.8.3", "babel": "5.8.3",
"boom": "^3.2.2",
"joi": "7.2.1", "joi": "7.2.1",
"lodash": "4.0.0" "lodash": "4.0.0"
} }

View File

@ -2,6 +2,7 @@ import joi from 'joi';
import error from './error'; import error from './error';
import _ from 'lodash'; import _ from 'lodash';
import { parseInclude, parseWhere } from './utils'; import { parseInclude, parseWhere } from './utils';
import { notFound } from 'boom';
let prefix; let prefix;
let defaultConfig; let defaultConfig;
@ -50,16 +51,19 @@ export const get = (server, model) => {
async handler(request, reply) { async handler(request, reply) {
const include = parseInclude(request); const include = parseInclude(request);
const where = parseWhere(request); const where = parseWhere(request);
if (request.params.id) where.id = request.params.id; const {id} = request.params;
if (id) where.id = id;
const instance = await model.findOne({ where, include }); const instance = await model.findOne({ where, include });
if (!instance) return void reply(notFound(`${id} not found.`));
reply(instance); reply(instance);
}, },
config: _.defaultsDeep({ config: _.defaultsDeep({
validate: { validate: {
params: joi.object().keys({ params: joi.object().keys({
id: joi.number().integer() id: joi.any()
}) })
} }
}, defaultConfig) }, defaultConfig)
@ -186,12 +190,15 @@ export const update = (server, model) => {
@error @error
async handler(request, reply) { async handler(request, reply) {
let instance = await model.findOne({ const {id} = request.params;
const instance = await model.findOne({
where: { where: {
id: request.params.id id
} }
}); });
if (!instance) return void reply(notFound(`${id} not found.`));
await instance.update(request.payload); await instance.update(request.payload);
reply(instance); reply(instance);