Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

current.js 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. 'use strict'
  2. const Joi = require('joi')
  3. const pluginConfig = {
  4. handlerType: 'user',
  5. docs: {
  6. get: {
  7. description: 'Get user',
  8. notes: 'Returns a user item by the id passed in the path',
  9. },
  10. },
  11. }
  12. /** Validator functions by request method */
  13. const validators = {
  14. get: {
  15. params: Joi.object({
  16. name: Joi.string().min(3).max(11),
  17. all: Joi.array(),
  18. }),
  19. },
  20. }
  21. module.exports = {
  22. method: 'get',
  23. path: '/{name}',
  24. options: {
  25. ...pluginConfig.docs.get,
  26. tags: ['api'],
  27. auth: 'default_jwt',
  28. handler: async function (request, h) {
  29. try {
  30. const auth = {
  31. credentials: request.auth.credentials,
  32. token: request.auth.artifacts.token,
  33. }
  34. // /** Get the data for your endpoint */
  35. // const { User } = request.models()
  36. // const all = await User.query()
  37. const { displayService } = request.services()
  38. const user = displayService.user(auth.credentials, auth.token)
  39. return {
  40. ok: true,
  41. handler: pluginConfig.handlerType,
  42. data: { name: request.params.name },
  43. }
  44. } catch (err) {
  45. return {
  46. ok: false,
  47. handler: pluginConfig.handlerType,
  48. data: { error: err },
  49. }
  50. }
  51. },
  52. validate: validators.get,
  53. response: {
  54. schema: Joi.object({
  55. ok: Joi.bool(),
  56. handler: Joi.string(),
  57. data: validators.get.params,
  58. }),
  59. failAction: 'log',
  60. },
  61. },
  62. }