UNPKG

@coko/server

Version:

Reusable server for use by Coko's projects

63 lines 2.77 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteMessage = exports.editMessage = exports.sendMessage = void 0; const logger_1 = __importDefault(require("../../logger")); const chatMessage_model_1 = __importDefault(require("./chatMessage.model")); const useTransaction_1 = __importDefault(require("../useTransaction")); const constants_1 = require("./constants"); const { CHAT_MESSAGE_CONTROLLER } = constants_1.labels; const sendMessage = async (chatChannelId, content, userId, mentions = [], options = {}) => { try { const { trx, ...restOptions } = options; const newMessage = await (0, useTransaction_1.default)(async (tr) => { logger_1.default.info(`${CHAT_MESSAGE_CONTROLLER} sendMessage: creating a new message for chat channel with id ${chatChannelId}`); return chatMessage_model_1.default.insert({ chatChannelId, userId, content, mentions }, { trx: tr, ...restOptions }); }, { trx, passedTrxOnly: true }); // notify? return newMessage; } catch (e) { logger_1.default.error(`${CHAT_MESSAGE_CONTROLLER} sendMessage: ${e.message}`); throw e; } }; exports.sendMessage = sendMessage; const editMessage = async (id, content, mentions, options = {}) => { try { const { trx, ...restOptions } = options; return (0, useTransaction_1.default)(async (tr) => { logger_1.default.info(`${CHAT_MESSAGE_CONTROLLER} editMessage: patching message with id ${id}`); const patchData = { content }; if (mentions) { patchData.mentions = mentions; } return chatMessage_model_1.default.patchAndFetchById(id, patchData, { trx: tr, ...restOptions, }); }, { trx, passedTrxOnly: true }); } catch (e) { logger_1.default.error(`${CHAT_MESSAGE_CONTROLLER} editMessage: ${e.message}`); throw e; } }; exports.editMessage = editMessage; const deleteMessage = async (id, options = {}) => { try { const { trx } = options; return (0, useTransaction_1.default)(async (tr) => { logger_1.default.info(`${CHAT_MESSAGE_CONTROLLER} deleteMessage: deleting message with id ${id}`); return chatMessage_model_1.default.deleteById(id, { trx: tr }); }, { trx, passedTrxOnly: true }); } catch (e) { logger_1.default.error(`${CHAT_MESSAGE_CONTROLLER} deleteMessage: ${e.message}`); throw e; } }; exports.deleteMessage = deleteMessage; //# sourceMappingURL=chatMessage.controller.js.map