mirror of
https://github.com/openmax-server/server.git
synced 2026-05-22 19:41:41 +03:00
Вроде как нормальные заглушки под ассеты
This commit is contained in:
@@ -54,6 +54,32 @@ class AssetsPayloadModel(pydantic.BaseModel):
|
||||
sync: int
|
||||
type: str
|
||||
|
||||
class AssetsGetPayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
count: int = 100
|
||||
query: str = None
|
||||
|
||||
class AssetsGetByIdsPayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
ids: list
|
||||
|
||||
class AssetsAddPayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
id: int = None
|
||||
|
||||
class AssetsRemovePayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
ids: list
|
||||
|
||||
class AssetsMovePayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
id: int
|
||||
position: int
|
||||
|
||||
class AssetsListModifyPayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
ids: list
|
||||
|
||||
class GetCallHistoryPayloadModel(pydantic.BaseModel):
|
||||
forward: bool
|
||||
count: int
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
import pydantic
|
||||
import time
|
||||
from classes.baseprocessor import BaseProcessor
|
||||
from oneme.models import AssetsPayloadModel
|
||||
from oneme.models import (
|
||||
AssetsPayloadModel,
|
||||
AssetsGetPayloadModel,
|
||||
AssetsGetByIdsPayloadModel,
|
||||
AssetsAddPayloadModel,
|
||||
AssetsRemovePayloadModel,
|
||||
AssetsMovePayloadModel,
|
||||
AssetsListModifyPayloadModel,
|
||||
)
|
||||
|
||||
class AssetsProcessors(BaseProcessor):
|
||||
async def assets_update(self, payload, seq, writer):
|
||||
"""Обработчик запроса ассетов клиента на сервере"""
|
||||
# Валидируем данные пакета
|
||||
try:
|
||||
AssetsPayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
@@ -14,18 +20,148 @@ class AssetsProcessors(BaseProcessor):
|
||||
await self._send_error(seq, self.opcodes.ASSETS_UPDATE, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
# TODO: сейчас это заглушка, а попозже нужно сделать полноценную реализацию
|
||||
|
||||
# Данные пакета
|
||||
payload = {
|
||||
"sections": [],
|
||||
"sync": int(time.time() * 1000)
|
||||
response = {
|
||||
"sync": int(time.time() * 1000),
|
||||
"stickerSetsUpdates": {},
|
||||
"stickersUpdates": {},
|
||||
"stickersOrder": [
|
||||
"RECENT",
|
||||
"FAVORITE_STICKERS",
|
||||
"FAVORITE_STICKER_SETS",
|
||||
"TOP",
|
||||
"NEW",
|
||||
"NEW_STICKER_SETS",
|
||||
],
|
||||
"sections": [
|
||||
{
|
||||
"id": "RECENT",
|
||||
"type": "RECENTS",
|
||||
"recentsList": [],
|
||||
},
|
||||
{
|
||||
"id": "FAVORITE_STICKERS",
|
||||
"type": "STICKERS",
|
||||
"stickers": [],
|
||||
"marker": None,
|
||||
},
|
||||
{
|
||||
"id": "FAVORITE_STICKER_SETS",
|
||||
"type": "STICKER_SETS",
|
||||
"stickerSets": [],
|
||||
"marker": None,
|
||||
},
|
||||
{
|
||||
"id": "TOP",
|
||||
"type": "STICKERS",
|
||||
"stickers": [],
|
||||
"marker": None,
|
||||
},
|
||||
{
|
||||
"id": "NEW",
|
||||
"type": "STICKERS",
|
||||
"stickers": [],
|
||||
"marker": None,
|
||||
},
|
||||
{
|
||||
"id": "NEW_STICKER_SETS",
|
||||
"type": "STICKER_SETS",
|
||||
"stickerSets": [],
|
||||
"marker": None,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
# Собираем пакет
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_UPDATE, payload=payload
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_UPDATE, payload=response
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_get(self, payload, seq, writer):
|
||||
try:
|
||||
data = AssetsGetPayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_GET, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
asset_type = data.type
|
||||
if asset_type == "STICKER_SET":
|
||||
response = {"stickerSets": [], "marker": None}
|
||||
else:
|
||||
response = {"stickers": [], "marker": None}
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_GET, payload=response
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_get_by_ids(self, payload, seq, writer):
|
||||
try:
|
||||
data = AssetsGetByIdsPayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_GET_BY_IDS, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
asset_type = data.type
|
||||
if asset_type == "STICKER_SET":
|
||||
response = {"stickerSets": []}
|
||||
else:
|
||||
response = {"stickers": []}
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_GET_BY_IDS, payload=response
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_add(self, payload, seq, writer):
|
||||
try:
|
||||
AssetsAddPayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_ADD, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_ADD, payload={}
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_remove(self, payload, seq, writer):
|
||||
try:
|
||||
AssetsRemovePayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_REMOVE, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_REMOVE, payload={}
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_move(self, payload, seq, writer):
|
||||
try:
|
||||
AssetsMovePayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_MOVE, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_MOVE, payload={}
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_list_modify(self, payload, seq, writer):
|
||||
try:
|
||||
AssetsListModifyPayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_LIST_MODIFY, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_LIST_MODIFY, payload={}
|
||||
)
|
||||
|
||||
# Отправляем
|
||||
await self._send(writer, packet)
|
||||
@@ -168,6 +168,54 @@ class OnemeMobile:
|
||||
seq,
|
||||
writer,
|
||||
)
|
||||
case self.opcodes.ASSETS_GET:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_get,
|
||||
payload,
|
||||
seq,
|
||||
writer,
|
||||
)
|
||||
case self.opcodes.ASSETS_GET_BY_IDS:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_get_by_ids,
|
||||
payload,
|
||||
seq,
|
||||
writer,
|
||||
)
|
||||
case self.opcodes.ASSETS_ADD:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_add,
|
||||
payload,
|
||||
seq,
|
||||
writer,
|
||||
)
|
||||
case self.opcodes.ASSETS_REMOVE:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_remove,
|
||||
payload,
|
||||
seq,
|
||||
writer,
|
||||
)
|
||||
case self.opcodes.ASSETS_MOVE:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_move,
|
||||
payload,
|
||||
seq,
|
||||
writer,
|
||||
)
|
||||
case self.opcodes.ASSETS_LIST_MODIFY:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_list_modify,
|
||||
payload,
|
||||
seq,
|
||||
writer,
|
||||
)
|
||||
case self.opcodes.VIDEO_CHAT_HISTORY:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
|
||||
@@ -151,6 +151,54 @@ class OnemeWS:
|
||||
seq,
|
||||
websocket,
|
||||
)
|
||||
case self.opcodes.ASSETS_GET:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_get,
|
||||
payload,
|
||||
seq,
|
||||
websocket,
|
||||
)
|
||||
case self.opcodes.ASSETS_GET_BY_IDS:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_get_by_ids,
|
||||
payload,
|
||||
seq,
|
||||
websocket,
|
||||
)
|
||||
case self.opcodes.ASSETS_ADD:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_add,
|
||||
payload,
|
||||
seq,
|
||||
websocket,
|
||||
)
|
||||
case self.opcodes.ASSETS_REMOVE:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_remove,
|
||||
payload,
|
||||
seq,
|
||||
websocket,
|
||||
)
|
||||
case self.opcodes.ASSETS_MOVE:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_move,
|
||||
payload,
|
||||
seq,
|
||||
websocket,
|
||||
)
|
||||
case self.opcodes.ASSETS_LIST_MODIFY:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
self.processors.assets_list_modify,
|
||||
payload,
|
||||
seq,
|
||||
websocket,
|
||||
)
|
||||
case self.opcodes.VIDEO_CHAT_HISTORY:
|
||||
await self.auth_required(
|
||||
userPhone,
|
||||
|
||||
@@ -54,6 +54,32 @@ class AssetsPayloadModel(pydantic.BaseModel):
|
||||
type: str = None
|
||||
userId: int = None
|
||||
|
||||
class AssetsGetPayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
count: int = 100
|
||||
query: str = None
|
||||
|
||||
class AssetsGetByIdsPayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
ids: list
|
||||
|
||||
class AssetsAddPayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
id: int = None
|
||||
|
||||
class AssetsRemovePayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
ids: list
|
||||
|
||||
class AssetsMovePayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
id: int
|
||||
position: int
|
||||
|
||||
class AssetsListModifyPayloadModel(pydantic.BaseModel):
|
||||
type: str
|
||||
ids: list
|
||||
|
||||
class GetCallTokenPayloadModel(pydantic.BaseModel):
|
||||
userId: int
|
||||
value: str
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
import pydantic
|
||||
import time
|
||||
from classes.baseprocessor import BaseProcessor
|
||||
from tamtam.models import AssetsPayloadModel
|
||||
from tamtam.models import (
|
||||
AssetsPayloadModel,
|
||||
AssetsGetPayloadModel,
|
||||
AssetsGetByIdsPayloadModel,
|
||||
AssetsAddPayloadModel,
|
||||
AssetsRemovePayloadModel,
|
||||
AssetsMovePayloadModel,
|
||||
AssetsListModifyPayloadModel,
|
||||
)
|
||||
|
||||
class AssetsProcessors(BaseProcessor):
|
||||
async def assets_update(self, payload, seq, writer):
|
||||
"""Обработчик запроса ассетов клиента на сервере"""
|
||||
# Валидируем данные пакета
|
||||
try:
|
||||
AssetsPayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
@@ -14,21 +20,148 @@ class AssetsProcessors(BaseProcessor):
|
||||
await self._send_error(seq, self.opcodes.ASSETS_UPDATE, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
# TODO: сейчас это заглушка, а попозже нужно сделать полноценную реализацию
|
||||
|
||||
# Данные пакета
|
||||
payload = {
|
||||
response = {
|
||||
"sync": int(time.time() * 1000),
|
||||
"stickerSetsUpdates": {},
|
||||
"stickersUpdates": {},
|
||||
"sections": [],
|
||||
"stickersOrder": []
|
||||
"stickersOrder": [
|
||||
"RECENT",
|
||||
"FAVORITE_STICKERS",
|
||||
"FAVORITE_STICKER_SETS",
|
||||
"TOP",
|
||||
"NEW",
|
||||
"NEW_STICKER_SETS",
|
||||
],
|
||||
"sections": [
|
||||
{
|
||||
"id": "RECENT",
|
||||
"type": "RECENTS",
|
||||
"recentsList": [],
|
||||
},
|
||||
{
|
||||
"id": "FAVORITE_STICKERS",
|
||||
"type": "STICKERS",
|
||||
"stickers": [],
|
||||
"marker": None,
|
||||
},
|
||||
{
|
||||
"id": "FAVORITE_STICKER_SETS",
|
||||
"type": "STICKER_SETS",
|
||||
"stickerSets": [],
|
||||
"marker": None,
|
||||
},
|
||||
{
|
||||
"id": "TOP",
|
||||
"type": "STICKERS",
|
||||
"stickers": [],
|
||||
"marker": None,
|
||||
},
|
||||
{
|
||||
"id": "NEW",
|
||||
"type": "STICKERS",
|
||||
"stickers": [],
|
||||
"marker": None,
|
||||
},
|
||||
{
|
||||
"id": "NEW_STICKER_SETS",
|
||||
"type": "STICKER_SETS",
|
||||
"stickerSets": [],
|
||||
"marker": None,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
# Собираем пакет
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_UPDATE, payload=payload
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_UPDATE, payload=response
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_get(self, payload, seq, writer):
|
||||
try:
|
||||
data = AssetsGetPayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_GET, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
asset_type = data.type
|
||||
if asset_type == "STICKER_SET":
|
||||
response = {"stickerSets": [], "marker": None}
|
||||
else:
|
||||
response = {"stickers": [], "marker": None}
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_GET, payload=response
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_get_by_ids(self, payload, seq, writer):
|
||||
try:
|
||||
data = AssetsGetByIdsPayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_GET_BY_IDS, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
asset_type = data.type
|
||||
if asset_type == "STICKER_SET":
|
||||
response = {"stickerSets": []}
|
||||
else:
|
||||
response = {"stickers": []}
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_GET_BY_IDS, payload=response
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_add(self, payload, seq, writer):
|
||||
try:
|
||||
AssetsAddPayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_ADD, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_ADD, payload={}
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_remove(self, payload, seq, writer):
|
||||
try:
|
||||
AssetsRemovePayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_REMOVE, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_REMOVE, payload={}
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_move(self, payload, seq, writer):
|
||||
try:
|
||||
AssetsMovePayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_MOVE, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_MOVE, payload={}
|
||||
)
|
||||
await self._send(writer, packet)
|
||||
|
||||
async def assets_list_modify(self, payload, seq, writer):
|
||||
try:
|
||||
AssetsListModifyPayloadModel.model_validate(payload)
|
||||
except pydantic.ValidationError as error:
|
||||
self.logger.error(f"Возникли ошибки при валидации пакета: {error}")
|
||||
await self._send_error(seq, self.opcodes.ASSETS_LIST_MODIFY, self.error_types.INVALID_PAYLOAD, writer)
|
||||
return
|
||||
|
||||
packet = self.proto.pack_packet(
|
||||
cmd=self.proto.CMD_OK, seq=seq, opcode=self.opcodes.ASSETS_LIST_MODIFY, payload={}
|
||||
)
|
||||
|
||||
# Отправляем
|
||||
await self._send(writer, packet)
|
||||
@@ -122,6 +122,30 @@ class TamTamMobile:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_update, payload, seq, writer
|
||||
)
|
||||
case self.opcodes.ASSETS_GET:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_get, payload, seq, writer
|
||||
)
|
||||
case self.opcodes.ASSETS_GET_BY_IDS:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_get_by_ids, payload, seq, writer
|
||||
)
|
||||
case self.opcodes.ASSETS_ADD:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_add, payload, seq, writer
|
||||
)
|
||||
case self.opcodes.ASSETS_REMOVE:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_remove, payload, seq, writer
|
||||
)
|
||||
case self.opcodes.ASSETS_MOVE:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_move, payload, seq, writer
|
||||
)
|
||||
case self.opcodes.ASSETS_LIST_MODIFY:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_list_modify, payload, seq, writer
|
||||
)
|
||||
case self.opcodes.VIDEO_CHAT_HISTORY:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.video_chat_history, payload, seq, writer
|
||||
|
||||
@@ -109,6 +109,30 @@ class TamTamWS:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_update, payload, seq, websocket
|
||||
)
|
||||
case self.opcodes.ASSETS_GET:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_get, payload, seq, websocket
|
||||
)
|
||||
case self.opcodes.ASSETS_GET_BY_IDS:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_get_by_ids, payload, seq, websocket
|
||||
)
|
||||
case self.opcodes.ASSETS_ADD:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_add, payload, seq, websocket
|
||||
)
|
||||
case self.opcodes.ASSETS_REMOVE:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_remove, payload, seq, websocket
|
||||
)
|
||||
case self.opcodes.ASSETS_MOVE:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_move, payload, seq, websocket
|
||||
)
|
||||
case self.opcodes.ASSETS_LIST_MODIFY:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.assets_list_modify, payload, seq, websocket
|
||||
)
|
||||
case self.opcodes.VIDEO_CHAT_HISTORY:
|
||||
await self.auth_required(
|
||||
userPhone, self.processors.video_chat_history, payload, seq, websocket
|
||||
|
||||
Reference in New Issue
Block a user