async handler(request, h) { try { return await Task.find({}).sort({ createdAt: 'desc' }); } catch (err) { Boom.badImplementation(err); } }
Person .query() .insertAndFetch(request.payload) .then(function (person) { reply(person) }) .catch(function (error) { reply(Boom.badImplementation(error)) })
async handler(request, h) { try { const task = request.params.task; return await Task.findOne({ _id: task.id }); } catch (err) { Boom.badImplementation(err); } }
const create = async (req, h) => { const { title, desc } = req.payload; const serial = Math.floor(Math.random() * 100000); const publish_date = Date.now(); try { await Book.create({ title, serial, desc, publish_date }); return { message: "success create book." }; } catch (err) { console.log(err); return Boom.badImplementation(); } }
// const asyncMiddleware = (fn) => (req, res, next) => { // //Promise.resolve(fn(req, res, next)).catch(next()); // fn(req, res, next).catch(next); // }; // wrapper for our async route handlers const asyncMiddleware = fn => (req, res, next) => { Promise.resolve(fn(req, res, next)).catch(err => { if (!err.isBoom) { return next(boom.badImplementation(err)); } next(err); }); }
// auth: 'jwt', async handler(request, h){ try { await Task.findById(request.params.task).remove(); return { success: true, message: 'Successfully removed task!' }; } catch (err) { Boom.badImplementation(err); } }
internals.evaluateTarget(rule.target, dataRetriever, (err, applies) => { if (err) { return callback(err); } if (!applies) { return callback(null, UNDETERMINED); } switch (rule.effect) { case 'permit': case PERMIT: return callback(null, PERMIT); case 'deny': case DENY: return callback(null, DENY); default: return callback(Boom.badImplementation('RBAC rule error: invalid effect ' + rule.effect)); } });
// auth: 'jwt', async handler(request, h) { try { const task = await new Task({ name: request.payload.name, description: request.payload.description }); task.save(); return { message: "Task created successfully", task }; } catch (err) { Boom.badImplementation(err); } }
const startServer = async () => { try { await server.register(require('hapi-auth-jwt2')); server.auth.strategy('jwt', 'jwt', { key: process.env.SECRET_KEY, validate, verifyOptions: { algorithms: [ 'HS256' ] } }); routes.forEach((route)=>{ server.route(route); }); await server.start(); console.log(`Server running at: ${server.info.uri}`); } catch (err) { console.log(err); Boom.badImplementation(err); } }
Movie .query() .findById(request.params.id) .then(function (movie) { if (!movie) { throw Boom.notFound('Movie id=(' + request.params.id + ') not found!') } return movie.$relatedQuery('actors') }) .then(function (actors) { reply(actors) }) .catch(function (error) { if (error.isBoom) { reply(error) return } reply(Boom.badImplementation(error)) })
Person .query() .patchAndFetchById(request.params.id, request.payload) .then(function (person) { if (person) { reply(person) return } reply(Boom.notFound('User not found')) }) .catch(function (error) { reply(Boom.badImplementation(error)) })
async handler(request, h) { try { const { email, password } = request.payload; const existingUser = await User.findOne({ email }); if (existingUser) { return Boom.badRequest('We already have a user with that email'); } const user = new User({ email, password }); await user.save(); await utils.sendVerificationEmail(user); return { message: "Registration complete! Please check your email to verify your account" }; } catch (err) { Boom.badImplementation(err); } }
User.findUserByEmail(req.payload.email, function(err, user) { if (err) { return reply(Boom.badImplementation(err)); } //Provide no indication if user exists if (user) { var tokenData = { username: user.username, id: user._id }; //The token will have id & username encrypted Mailer.sendMailResetPassword( user, JasonWebToken.sign(tokenData, CONFIG.crypto.privateKey)); reply({}); } });
async handler(request, h) { try { const task = request.params.task; const updates = request.payload; // todo return { success: true, message: 'Successfully updated task!' }; } catch (err) { Boom.badImplementation(err); } }
Person .query() .deleteById(request.params.id) .then(function () { reply({}) }) .catch(function (error) { reply(Boom.badImplementation(error)) })