me.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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 ExternalAccount = models.ExternalAccount;
  53. const ApiResponse = require('../util/apiResponse');
  54. // , pluginService = require('../service/plugin')
  55. const actions = {};
  56. const api = {};
  57. actions.api = api;
  58. /**
  59. * @swagger
  60. *
  61. * /me/user-group-relations:
  62. * get:
  63. * tags: [Me, CrowiCompatibles]
  64. * operationId: getUserGroupRelations
  65. * summary: /me/user-group-relations
  66. * description: Get user group relations
  67. * responses:
  68. * 200:
  69. * description: Succeeded to get user group relations.
  70. * content:
  71. * application/json:
  72. * schema:
  73. * properties:
  74. * ok:
  75. * $ref: '#/components/schemas/V1Response/properties/ok'
  76. * userGroupRelations:
  77. * type: array
  78. * items:
  79. * $ref: '#/components/schemas/UserGroupRelation'
  80. * 403:
  81. * $ref: '#/components/responses/403'
  82. * 500:
  83. * $ref: '#/components/responses/500'
  84. */
  85. /**
  86. * retrieve user-group-relation documents
  87. * @param {object} req
  88. * @param {object} res
  89. */
  90. api.userGroupRelations = function(req, res) {
  91. UserGroupRelation.findAllRelationForUser(req.user)
  92. .then((userGroupRelations) => {
  93. return res.json(ApiResponse.success({ userGroupRelations }));
  94. });
  95. };
  96. return actions;
  97. };