| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { type IUserHasId } from '@growi/core';
- import { Router, Request } from 'express';
- import ExternalUserGroupRelation from '~/features/external-user-group/server/models/external-user-group-relation';
- import loggerFactory from '~/utils/logger';
- import UserGroupRelation from '../../models/user-group-relation';
- import { ApiV3Response } from './interfaces/apiv3-response';
- const logger = loggerFactory('growi:routes:apiv3:me');
- const router = Router();
- interface AuthorizedRequest extends Request {
- user?: IUserHasId
- }
- module.exports = function(crowi) {
- const accessTokenParser = require('../../middlewares/access-token-parser')(crowi);
- const loginRequiredStrictly = require('../../middlewares/login-required')(crowi);
- const ApiResponse = require('../../util/apiResponse');
- /**
- * retrieve user-group documents
- */
- router.get('/user-groups', accessTokenParser, loginRequiredStrictly, async(req: AuthorizedRequest, res: ApiV3Response) => {
- try {
- const userGroups = await UserGroupRelation.findAllGroupsForUser(req.user);
- return res.json(ApiResponse.success({ userGroups }));
- }
- catch (e) {
- logger.error(e);
- return res.apiv3Err(e, 500);
- }
- });
- /**
- * retrieve external-user-group-relation documents
- */
- router.get('/external-user-groups', accessTokenParser, loginRequiredStrictly, async(req: AuthorizedRequest, res: ApiV3Response) => {
- try {
- const userGroups = await ExternalUserGroupRelation.findAllGroupsForUser(req.user);
- return res.json(ApiResponse.success({ userGroups }));
- }
- catch (e) {
- logger.error(e);
- return res.apiv3Err(e, 500);
- }
- });
- return router;
- };
|