server.route({ method: 'GET', path: '/{name}', handler: function (request, reply) { reply('Hello, ' + encodeURIComponent(request.params.name) + '!'); } });
server.ext('onPreResponse', (request, reply) => { if (request.response.isBoom && request.response.output.statusCode === 404) { // use index.html as fallback in case of 404 errors (esp to enable React Router with BrowserHistory) // (something like Webpack Devserver's --history-api-fallback option) return reply.file(path.join(__dirname, 'public/index.html')); } return reply.continue(); });
handler(request, reply) { const { body, recipient, originator, createdDatetime } = request.payload; receivedMessages.push({ body, originator, recipient, createdDatetime }); console.log('Message received: ', receivedMessages); reply('OK').code(200); }
server.route({ method: 'GET', path: '/images/{filename}', handler: { file: (request) => { return "public/"+request.params.filename; } } });
server.route({ method: "POST", path: "/posts/{id}", handler(request, reply) { const post = posts.find(post => post.id == request.params.id); setTimeout(() => { reply(post || Boom.notFound()); }, 1500); }, });
server.ext('onPreResponse', (request, reply) => { if (request.response.isBoom) { if (request.headers.accept) { if (request.headers.accept.indexOf('application/json') === -1) { const err = request.response const errName = err.output.payload.error const statusCode = err.output.payload.statusCode if (statusCode === 401) { return reply.redirect('/login') } return reply.view('error', { statusCode: statusCode, errName: errName }).code(statusCode) } } } reply.continue() })
server.route({ method: 'POST', path: '/v1/users', handler: (request, reply) => { //forge cria instancia em memoria User.forge(request.payload) .save() .then( (user) => reply(user) ) .catch( (err) => reply({error: err.detail}).code(409) ) }, config: { validate: { payload: Joi.object({ email: Joi.string().email().required(), password: Joi.string().required() }) } } })
/** * Attempt to serve static requests from the public folder. */ server.route({ method: "*", path: "/{params*}", handler: (request, reply) => { reply.file("static" + request.path); } });
//http://localhost:8000/getAVol //{"volId": 5} server.route({ method: 'POST', path:'/getAVol', handler: function (request, reply) { const volId = request.payload.volId; for(let i = 0; i < allVols.length; i++){ let vol = allVols[i]; if(vol.volId === volId) { return reply(vol); } } let retObj = {volId: -1, message: "Vol not found"}; return reply(retObj); } });
server.route({ method: 'GET', path: '/v1/sessions', handler: (request, reply) => { //reply(request.auth.credentials) reply(request.auth.credentials.email + ' Acesso autorizado!!') }, config: { auth: 'jwt' } })
server.route({ method: 'POST', path: '/messages', handler: function (request, reply) { const uid = request.payload.uid; connection.query('SELECT * FROM messages WHERE uid_fk = "' + uid + '"', function (error, results, fields) { if (error) throw error; reply(results); }); }, config: { validate: { payload: { uid: Joi.number().integer() } } } });
server.route({ method: 'GET', path: '/api/protected/hello', handler: (request, reply) => { reply(request.auth.credentials); } });
server.route({ method: 'POST', path: '/messagedelete', handler: function (request, reply) { const mid = request.payload.mid; connection.query('Delete from messages WHERE mid = "' + mid + '"', function (error, results, fields) { if (error) throw error; reply(results); }); }, config: { validate: { payload: { mid: Joi.number().integer() } } } });
server.route({ method: 'GET', path: '/user/{uid}', handler: function (request, reply) { const uid = request.params.uid; connection.query('SELECT uid, username, email FROM users WHERE uid = "' + uid + '"', function (error, results, fields) { if (error) throw error; reply(results); }); }, config: { validate: { params: { uid: Joi.number().integer() } } } });