| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- /**
- * @swagger
- *
- * components:
- * schemas:
- * UserGroup:
- * description: UserGroup
- * type: object
- * properties:
- * __v:
- * type: number
- * description: record version
- * example: 0
- * _id:
- * type: string
- * description: user group ID
- * example: 5e2d56c1e35da4004ef7e0b0
- * createdAt:
- * type: string
- * description: date created at
- * example: 2010-01-01T00:00:00.000Z
- */
- /**
- * @swagger
- *
- * components:
- * schemas:
- * UserGroupRelation:
- * description: UserGroupRelation
- * type: object
- * properties:
- * __v:
- * type: number
- * description: record version
- * example: 0
- * _id:
- * type: string
- * description: user group relation ID
- * example: 5e2d56cbe35da4004ef7e0b1
- * relatedGroup:
- * $ref: '#/components/schemas/UserGroup'
- * relatedUser:
- * $ref: '#/components/schemas/User/properties/_id'
- * createdAt:
- * type: string
- * description: date created at
- * example: 2010-01-01T00:00:00.000Z
- */
- module.exports = function(crowi, app) {
- const models = crowi.models;
- const UserGroupRelation = models.UserGroupRelation;
- const ExternalAccount = models.ExternalAccount;
- const ApiResponse = require('../util/apiResponse');
- // , pluginService = require('../service/plugin')
- const actions = {};
- const api = {};
- actions.api = api;
- /**
- * @swagger
- *
- * /me/user-group-relations:
- * get:
- * tags: [Me, CrowiCompatibles]
- * operationId: getUserGroupRelations
- * summary: /me/user-group-relations
- * description: Get user group relations
- * responses:
- * 200:
- * description: Succeeded to get user group relations.
- * content:
- * application/json:
- * schema:
- * properties:
- * ok:
- * $ref: '#/components/schemas/V1Response/properties/ok'
- * userGroupRelations:
- * type: array
- * items:
- * $ref: '#/components/schemas/UserGroupRelation'
- * 403:
- * $ref: '#/components/responses/403'
- * 500:
- * $ref: '#/components/responses/500'
- */
- /**
- * retrieve user-group-relation documents
- * @param {object} req
- * @param {object} res
- */
- api.userGroupRelations = function(req, res) {
- UserGroupRelation.findAllRelationForUser(req.user)
- .then((userGroupRelations) => {
- return res.json(ApiResponse.success({ userGroupRelations }));
- });
- };
- actions.index = async function(req, res) {
- const User = crowi.model('User');
- const userData = await User.findById(req.user.id).populate({ path: 'imageAttachment', select: 'filePathProxied' });
- const renderVars = {};
- renderVars.user = userData;
- return res.render('me/index', renderVars);
- };
- actions.externalAccounts = {};
- actions.externalAccounts.list = function(req, res) {
- const userData = req.user;
- const renderVars = {};
- ExternalAccount.find({ user: userData })
- .then((externalAccounts) => {
- renderVars.externalAccounts = externalAccounts;
- return;
- })
- .then(() => {
- if (req.method === 'POST' && req.form.isValid) {
- // TODO impl
- return res.render('me/external-accounts', renderVars);
- }
- // method GET
- return res.render('me/external-accounts', renderVars);
- });
- };
- actions.drafts = {};
- actions.drafts.list = async function(req, res) {
- return res.render('me/drafts');
- };
- actions.updates = function(req, res) {
- res.render('me/update', {
- });
- };
- return actions;
- };
|