Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

login.js 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. 'use strict';
  2. const Joi = require('joi');
  3. const User = require('../../models/user');
  4. const pluginConfig = {
  5. handlerType: 'user',
  6. docs: {
  7. post: {
  8. description: 'login',
  9. notes: 'Attempt login'
  10. }
  11. }
  12. }
  13. /** Validator functions by request method */
  14. const validators = {
  15. post: {
  16. payload: Joi.object({
  17. user: Joi.object().required().keys({
  18. email: User.field('email').required(),
  19. password: Joi.string().required()
  20. })
  21. })
  22. }
  23. }
  24. module.exports = {
  25. method: 'post',
  26. path: '/login',
  27. handler: async (request, h) => {
  28. try {
  29. const { user: { email, password } } = request.payload
  30. const { mathService } = request.services()
  31. console.log(mathService.add(10, 1))
  32. // const { userService, displayService } = request.services();
  33. // const login = async (txn) => {
  34. // return await userService.login({ email, password }, txn);
  35. // };
  36. // const user = await h.context.transaction(login);
  37. // const token = userService.createToken(user.id);
  38. return {
  39. ok: true,
  40. handler: pluginConfig.handlerType,
  41. data: {
  42. user: { email: '', password: '' }
  43. },
  44. // data: { user: displayService.user(user, token) }
  45. }
  46. }
  47. catch(err) {
  48. return {
  49. ok: false,
  50. handler: pluginConfig.handlerType,
  51. data: { error: err },
  52. }
  53. }
  54. },
  55. options: {
  56. ...pluginConfig.docs.post,
  57. tags: ['api'],
  58. auth: false,
  59. validate: validators.post,
  60. response: {
  61. schema: Joi.object({
  62. ok: Joi.bool(),
  63. handler: Joi.string(),
  64. data: validators.post.payload
  65. }),
  66. failAction: 'log'
  67. }
  68. }
  69. }