403Webshell
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/cvetdv.ru/bitrix/js/im/v2/provider/pull/src/old-chat-embedding/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/provider/pull/src/old-chat-embedding/base.js
import {PullClient} from 'pull.client';

import {Core} from 'im.v2.application.core';
import {UserManager} from 'im.v2.lib.user';
import {Logger} from 'im.v2.lib.logger';

export class LegacyBasePullHandler
{
	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)
	{
		Logger.warn('handleMessageAdd', params);

		if (params.lines)
		{
			return false;
		}

		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, extra, command);
	}

	execMessageUpdateOrDelete(params, extra, command)
	{
		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
			}
		});
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit