Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

user-by-email.js 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. 'use strict'
  2. const Joi = require('joi')
  3. const pluginConfig = {
  4. handlerType: 'email',
  5. docs: {
  6. get: {
  7. description: 'Fetches User Data by Email',
  8. notes: 'Grabs the User Data by Email for use in survey validation',
  9. },
  10. },
  11. }
  12. module.exports = {
  13. method: 'GET',
  14. path: '/fetchbymail/{email}',
  15. options: {
  16. ...pluginConfig.docs.get,
  17. tags: ['api'],
  18. // auth: false,
  19. auth: 'default_jwt',
  20. cors: true,
  21. handler: async function (request, h) {
  22. const email = request.params.email
  23. const { userService } = request.server.services()
  24. const data = await userService.findByUserEmail(email)
  25. try {
  26. return {
  27. ok: true,
  28. handler: pluginConfig.handlerType,
  29. data: data,
  30. }
  31. } catch (err) {
  32. return {
  33. ok: false,
  34. handler: pluginConfig.handlerType,
  35. data: {
  36. error: err,
  37. },
  38. }
  39. }
  40. },
  41. validate: {
  42. failAction: 'log',
  43. },
  44. response: {
  45. schema: Joi.object({
  46. ok: Joi.bool(),
  47. handler: Joi.string(),
  48. data: Joi.object(),
  49. }).label('fetchbymail'),
  50. failAction: 'log',
  51. },
  52. },
  53. }