UNPKG

linagora-rse

Version:
166 lines (157 loc) 4.93 kB
'use strict'; var authorize = require('../middleware/authorization'); var requestMW = require('../middleware/request'); var messages = require('../controllers/messages'); var pollMessages = require('../controllers/poll-messages'); var messageMiddleware = require('../middleware/message'); var asMiddleware = require('../middleware/activitystream'); module.exports = function(router) { /** * @swagger * /messages: * get: * tags: * - Message * description: List all the messages from the given message ids. * parameters: * - $ref: "#/parameters/msg_ids" * responses: * 200: * $ref: "#/responses/msg_list" * 400: * $ref: "#/responses/cm_400" * 401: * $ref: "#/responses/cm_401" * 404: * $ref: "#/responses/cm_404" * 500: * $ref: "#/responses/cm_500" */ router.get('/messages', authorize.requiresAPILogin, messages.getMessages); /** * @swagger * /messages: * post: * tags: * - Message * description: Post a new message by the currently logged in user. * parameters: * - $ref: "#/parameters/msg_message" * responses: * 201: * $ref: "#/responses/msg_create" * 400: * $ref: "#/responses/cm_400" * 401: * $ref: "#/responses/cm_401" * 403: * $ref: "#/responses/cm_403" * 500: * $ref: "#/responses/cm_500" */ router.post('/messages', authorize.requiresAPILogin, messageMiddleware.canReplyTo, asMiddleware.filterWritableTargets, messageMiddleware.checkTargets, messageMiddleware.checkMessageModel, messages.createOrReplyToMessage); /** * @swagger * /messages/{id}: * get: * tags: * - Message * description: Get a message from its ID. * parameters: * - $ref: "#/parameters/msg_id" * responses: * 200: * $ref: "#/responses/msg_document" * 400: * $ref: "#/responses/cm_400" * 401: * $ref: "#/responses/cm_401" * 404: * $ref: "#/responses/cm_404" * 500: * $ref: "#/responses/cm_500" */ router.get('/messages/:id', authorize.requiresAPILogin, messages.getMessage); /** * @swagger * /messages/{id}/shares: * post: * tags: * - Message * description: | * Copy a message from a resource (community, project, ...) to another (or several others) * * i.e. share a message. * parameters: * - $ref: "#/parameters/msg_id" * - $ref: "#/parameters/msg_share" * responses: * 201: * $ref: "#/responses/msg_create" * 400: * $ref: "#/responses/cm_400" * 401: * $ref: "#/responses/cm_401" * 403: * $ref: "#/responses/cm_403" * 404: * $ref: "#/responses/cm_404" * 500: * $ref: "#/responses/cm_500" */ router.post('/messages/:id/shares', authorize.requiresAPILogin, messageMiddleware.canShareFrom, messageMiddleware.canShareTo, messages.copy); /** * @swagger * /messages/email: * post: * tags: * - Message * description: Publish a message in rfc822 MIME form. * consumes: * - message/rfc822 * parameters: * - $ref: "#/parameters/msg_id_query" * - $ref: "#/parameters/msg_objectType" * - $ref: "#/parameters/msg_mail" * responses: * 201: * $ref: "#/responses/msg_create" * 400: * $ref: "#/responses/cm_400" * 401: * $ref: "#/responses/cm_401" * 404: * $ref: "#/responses/cm_404" * 500: * $ref: "#/responses/cm_500" */ router.post('/messages/email', authorize.requiresAPILogin, asMiddleware.isValidStream, messages.createMessageFromEmail); /** * @swagger * /messages/{id}/vote/{vote}: * put: * tags: * - Message * description: * Vote for a choice within a poll message specified by the given id. * Vote must refer to a correct index within the available choices. * Each user can only vote one time. * parameters: * - $ref: "#/parameters/msg_id" * - $ref: "#/parameters/msg_vote" * responses: * 200: * $ref: "#/responses/msg_vote" * 400: * $ref: "#/responses/cm_400" * 401: * $ref: "#/responses/cm_401" * 403: * $ref: "#/responses/cm_403" * 404: * $ref: "#/responses/cm_404" * 500: * $ref: "#/responses/cm_500" */ router.put('/messages/:id/vote/:vote', authorize.requiresAPILogin, requestMW.castParamToObjectId('id'), pollMessages.vote); };