me.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. /**
  2. * @swagger
  3. *
  4. * components:
  5. * schemas:
  6. * UserGroup:
  7. * description: UserGroup
  8. * type: object
  9. * properties:
  10. * __v:
  11. * type: number
  12. * description: record version
  13. * example: 0
  14. * _id:
  15. * type: string
  16. * description: user group ID
  17. * example: 5e2d56c1e35da4004ef7e0b0
  18. * createdAt:
  19. * type: string
  20. * description: date created at
  21. * example: 2010-01-01T00:00:00.000Z
  22. */
  23. /**
  24. * @swagger
  25. *
  26. * components:
  27. * schemas:
  28. * UserGroupRelation:
  29. * description: UserGroupRelation
  30. * type: object
  31. * properties:
  32. * __v:
  33. * type: number
  34. * description: record version
  35. * example: 0
  36. * _id:
  37. * type: string
  38. * description: user group relation ID
  39. * example: 5e2d56cbe35da4004ef7e0b1
  40. * relatedGroup:
  41. * $ref: '#/components/schemas/UserGroup'
  42. * relatedUser:
  43. * $ref: '#/components/schemas/User/properties/_id'
  44. * createdAt:
  45. * type: string
  46. * description: date created at
  47. * example: 2010-01-01T00:00:00.000Z
  48. */
  49. module.exports = function(crowi, app) {
  50. const models = crowi.models;
  51. const UserGroupRelation = models.UserGroupRelation;
  52. const ApiResponse = require('../util/apiResponse');
  53. // , pluginService = require('../service/plugin')
  54. const actions = {};
  55. const api = {};
  56. actions.api = api;
  57. /**
  58. * @swagger
  59. *
  60. * /me/user-group-relations:
  61. * get:
  62. * tags: [Me, CrowiCompatibles]
  63. * operationId: getUserGroupRelations
  64. * summary: /me/user-group-relations
  65. * description: Get user group relations
  66. * responses:
  67. * 200:
  68. * description: Succeeded to get user group relations.
  69. * content:
  70. * application/json:
  71. * schema:
  72. * properties:
  73. * ok:
  74. * $ref: '#/components/schemas/V1Response/properties/ok'
  75. * userGroupRelations:
  76. * type: array
  77. * items:
  78. * $ref: '#/components/schemas/UserGroupRelation'
  79. * 403:
  80. * $ref: '#/components/responses/403'
  81. * 500:
  82. * $ref: '#/components/responses/500'
  83. */
  84. /**
  85. * retrieve user-group-relation documents
  86. * @param {object} req
  87. * @param {object} res
  88. */
  89. api.userGroupRelations = function(req, res) {
  90. UserGroupRelation.findAllRelationForUser(req.user)
  91. .then((userGroupRelations) => {
  92. return res.json(ApiResponse.success({ userGroupRelations }));
  93. });
  94. };
  95. return actions;
  96. };