/** * @module ioHelpers * @param app * @param api * @param io * @param logger * @returns {{getBodyshopRoom: (function(*): string), getBodyshopConversationRoom: (function({bodyshopId: *, conversationId: *}): string)}} */ const applyIOHelpers = ({ app }) => { // Global Bodyshop Room const getBodyshopRoom = (bodyshopId) => `bodyshop-broadcast-room:${bodyshopId}`; // Messaging - conversation specific room to handle detailed messages when the user has a conversation open. const getBodyshopConversationRoom = ({ bodyshopId, conversationId }) => `bodyshop-conversation-room:${bodyshopId}:${conversationId}`; const ioHelpersAPI = { getBodyshopRoom, getBodyshopConversationRoom }; // Helper middleware app.use((req, res, next) => { req.ioHelpers = ioHelpersAPI; next(); }); return ioHelpersAPI; }; module.exports = { applyIOHelpers };