RocketChat/Rocket.Chat

View on GitHub
apps/meteor/app/livechat/server/api/v1/transfer.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { LivechatRooms } from '@rocket.chat/models';

import { API } from '../../../../api/server';
import { getPaginationItems } from '../../../../api/server/helpers/getPaginationItems';
import { findLivechatTransferHistory } from '../lib/transfer';

API.v1.addRoute(
    'livechat/transfer.history/:rid',
    { authRequired: true, permissionsRequired: ['view-livechat-rooms'] },
    {
        async get() {
            const { rid } = this.urlParams;

            const room = await LivechatRooms.findOneById(rid, { projection: { _id: 1 } });
            if (!room) {
                throw new Error('invalid-room');
            }
            const { offset, count } = await getPaginationItems(this.queryParams);
            const { sort } = await this.parseJsonQuery();

            const history = await findLivechatTransferHistory({
                rid,
                pagination: {
                    offset,
                    count,
                    sort,
                },
            });

            return API.v1.success(history);
        },
    },
);