Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/js/im/old-chat-embedding/provider/pull/src/ |
Upload File : |
import {PullClient} from 'pull.client'; import {Core} from 'im.old-chat-embedding.application.core'; import {UserManager} from 'im.old-chat-embedding.lib.user'; import {Logger} from 'im.old-chat-embedding.lib.logger'; export class BasePullHandler { constructor() { this.store = Core.getStore(); this.userManager = new UserManager(); } getModuleId() { return 'im'; } getSubscriptionType() { return PullClient.SubscriptionType.Server; } handleMessage(params, extra) { this.handleMessageAdd(params, extra); } handleMessageChat(params, extra) { this.handleMessageAdd(params, extra); } handleMessageAdd(params, extra) { if (params.lines) { return false; } Logger.warn('handleMessageAdd', params); if (params?.chat[params.chatId]) { const chatToAdd = {...params.chat[params.chatId], dialogId: params.dialogId}; this.store.dispatch('dialogues/set', chatToAdd); } //set users if (params.users) { this.userManager.setUsersToModel(Object.values(params.users)); } //stop writing event this.store.dispatch('dialogues/stopWriting', { dialogId: params.dialogId, userId: params.message.senderId }); // counters (TBD for own message) if (params.message.senderId !== Core.getUserId()) { this.store.dispatch('dialogues/update', { dialogId: params.dialogId, fields: { counter: params.counter, } }); } } handleMessageUpdate(params, extra, command) { this.execMessageUpdateOrDelete(params, extra, command); } handleMessageDelete(params, extra, command) { this.execMessageUpdateOrDelete(params, extra, command); } handleMessageDeleteComplete(params, extra) { this.execMessageUpdateOrDelete(params); this.store.dispatch('dialogues/update', { dialogId: params.dialogId, fields: { counter: params.counter, }, }); } execMessageUpdateOrDelete(params) { this.store.dispatch('dialogues/stopWriting', { dialogId: params.dialogId, userId: params.senderId }); } handleChatOwner(params, extra) { this.store.dispatch('dialogues/update', { dialogId: params.dialogId, fields: { ownerId: params.userId, } }); } handleChatManagers(params, extra) { this.store.dispatch('dialogues/update', { dialogId: params.dialogId, fields: { managerList: params.list, } }); } handleChatUpdateParams(params, extra) { this.store.dispatch('dialogues/update', { dialogId: params.dialogId, fields: params.params }); } handleChatUserAdd(params, extra) { if (params.users) { this.userManager.setUsersToModel(params.users); } this.store.dispatch('dialogues/update', { dialogId: params.dialogId, fields: {userCounter: params.userCount} }); } handleChatUserLeave(params, extra) { this.handleChatUserAdd(params, extra); } handleStartWriting(params, extra) { const {dialogId, userId, userName} = params; this.store.dispatch('dialogues/startWriting', { dialogId, userId, userName }); } handleReadMessage(params, extra) { Logger.warn('handleReadMessage', params); this.store.dispatch('dialogues/update', { dialogId: params.dialogId, fields: { counter: params.counter, } }); } handleReadMessageChat(params, extra) { this.handleReadMessage(params, extra); } handleUnreadMessage(params, extra) { this.store.dispatch('dialogues/update', { dialogId: params.dialogId, fields: { counter: params.counter, } }); } handleUnreadMessageChat(params, extra) { this.handleUnreadMessage(params, extra); } handleUnreadMessageOpponent(params, extra) { this.execUnreadMessageOpponent(params, extra); } handleUnreadMessageChatOpponent(params, extra) { this.execUnreadMessageOpponent(params, extra); } execUnreadMessageOpponent(params, extra) { this.store.dispatch('dialogues/removeFromReadList', { dialogId: params.dialogId, userId: params.userId }); } handleReadAllChats() { Logger.warn('BasePullHandler: handleReadAllChats'); this.store.dispatch('dialogues/clearCounters'); this.store.dispatch('recent/clearUnread'); } handleChatMuteNotify(params) { if (params.muted) { this.store.dispatch('dialogues/mute', { dialogId: params.dialogId }); return true; } this.store.dispatch('dialogues/unmute', { dialogId: params.dialogId }); } handleUserInvite(params) { if (!params.invited) { this.store.dispatch('users/update', { id: params.userId, fields: params.user }); } } handleChatRename(params) { const dialog = this.store.getters['dialogues/getByChatId'](params.chatId); if (!dialog) { return false; } this.store.dispatch('dialogues/update', { dialogId: dialog.dialogId, fields: { name: params.name } }); } handleChatAvatar(params) { const dialog = this.store.getters['dialogues/getByChatId'](params.chatId); if (!dialog) { return false; } this.store.dispatch('dialogues/update', { dialogId: dialog.dialogId, fields: { avatar: params.avatar } }); } }