*
- Обязательно
Параметр запроса с числом на конце
- Значение по умолчанию. Параметр не обязателен для передачи
- Авторизация обязательна
Информация
1
- Url для подключения берется из /api/rest/start
2
- Периодически url может изменяться. В случае нарушения подключения необходимо сверить url
3
- Каждое подключение юзера должно передать его токен и страницу на которой он находится.
4
- Страницей читается все что находится в url после домена.
Пример: wss://collectorsshop.host:8081/?token={jwt}&page=support/themes для страницы collectorsshop.ru/support/themes
5
- Если странице изменилась сделает разорвать старое подключение и создать новое
6
- Все сообщения состоят из handler и data
7
- Handler отвечает за то какой метод должен обработать запрос
8
- В data передается что должно быть обработано
9
- Сообщения передаются как json
0
- Пример сообщения {"handler":"SupThemeNewStatus","data":{"theme_id":"45403","status":2}}
Тестирование
1
- Тестовый сокет wss://collectorsshop.host:8082
2
- Для отправки себе тестовых сообщений нужно перейти по ссылке /api/rest/socket/send?handler={handler}&user={id}
3
- Для некоторых запросов нужны дополнительные параметры. Их нужно также передать.
Любая страница. Воспроизвести звук
handler:Alert
audio
- str — название звукового файла. /js/sounds/...
Любая страница. Увеличить счетчик непрочитанных уведомлений
handler:NewNatif
Прибавить 1 к числу непрочитанных уведомлений
Любая страница. Уменьшить счетчик непрочитанных уведомлений
handler:RemoveNatif
Отнять 1 у списка непрочитанных сообщений. Убрать число непрочитанных если счетчик дошел до 0
Любая страница. Обновить страницу
handler:Reload
Принудительно обновить страницу. location.reload();
Саппорт. В теме клиента администратор начинает печатать сообщение
handler:SupMsgPrinting
1
- Событие вызывается в момент того как кто-то в админке начал набирать текст. Минимальный интервал таких сообщений 5 секунд.
2
- Для теста нужно передать theme_id
theme_id
- int — id темы
role
- str — кто набирает сообщение
Должно получиться что-то типо Модератор общих вопросов набирает сообщение
Саппорт. Клиент в своей теме начал набирать сообщение
handler:SupYanaMsgPrinting
1
- Событие вызывается в момент того как клиент начал вбивать текст. Нужно установить таймер на отправку этого запроса.
Не отправлять его повторно если предыдущий был отправлен менее 5 секунд назад
theme_id
- int — id темы
Саппорт. Смена статуса темы
handler:SupThemeNewStatus
1
- Для теста нужно передать theme_id
theme_id
- int — id темы
status
- int — код статуса
Саппорт. Новое сообщение в теме
handler:SupNewMessage
1
- Для теста нужно передать theme_id
theme_id
- int — id темы
text
- html — текст сообщения. В тексте могут быть html теги
images
- arr — приложенные изображения. https://collectorsshop.ru/img/support/mini/...
date
- str — время создания сообщения
role
- str — код роли
roleText
- str — текст роли
author
- bln — написано ли это сообщение автором темы
Аналогично /api/rest/support/theme->messages за исключением добавления theme_id
Саппорт. Новое кол-во ответов в поддержке
handler:SupNewAnswersTotalCount
total_answers
- int — кол-во ответов
Саппорт. Новое кол-во лайков на вопросе/ответе
handler:SupNewFaqLikesCount
id
- int — идентификатор вопроса/ответа на котором изменилось кол-во лайков
action
- int — тип действия, приведший к изменению кол-ва лайков
3 - поставили лайк
4 - убрали лайк
likes
- int — кол-во лайков
Профиль. У заказа новый статус
handler:ProfileOrderNewStatus
1
- Для теста нужно передать order_id
2
- Нужный статус передается через status
3
- Для статусов 7,9,10 нужно передать reason
order_id
- int — id заказа
status_id
- int — id статуса
status_text
- str — текст статуса
trouble
- str — если статус подразумевает наличие текста причины его выставления
refund_info
- arr — статус возврата возвращает инициатора и причину
initiator
- str — кто выставил статус ['admin']
reason
- str — причина возврата
Профиль. У заказа новый инвентарь
handler:ProfileOrderNewInventory
1
- Для теста нужно передать order_id
2
- возвращает один из 2х заранее заготовленных инвентарей
- arr — аналогичен profile/orders.inventory
order_id
- int — id заказа
inv_id
- int — id инвентаря на сайте
inv_name
- str — имя инвентаря с которого должны передать заказ
inv_avatar
- str — аватар инвентаря /img/inventory/avatars/...
inv_url
- str — ссылка на инвентарь
Профиль. Новый комментарий к заказу
handler:ProfileOrderNewMessage
1
- Для теста нужно передать order_id
order_id
- int — id заказа
message
- arr — аналогичный /api/rest/profile/order_comments
Профиль. Куратор увидел сообщение от юзера
handler:ProfileCuratorSawMessage
1
- Для теста нужно передать order_id
order_id
- int — id заказа
На все сообщения юзера где нет времени просмотра куратора
Профиль. В заказе клиента куратор начинает печатать сообщение
handler:ProfilePrintingMsg
1
- Событие вызывается в момент того как кто-то в админке начал набирать текст. Минимальный интервал таких сообщений 5 секунд.
order_id
- int — id заказа
role
- str — кто набирает сообщение
Должно получиться что-то типо Куратор набирает сообщение. Куратор набирает сообщение.. Куратор набирает сообщение...
Профиль. Клиент в своей заказе начал набирать сообщение
handler:ProfileYanaMsgPrinting
1
- Событие вызывается в момент того как клиент начал вбивать текст. Нужно установить таймер на отправку этого запроса.
Не отправлять его повторно если предыдущий был отправлен менее 5 секунд назад
theme_id
- int — id темы
Отзывы. Добавлен новый отзыв
handler:ReviewsNew
- arr — аналогичный тому то находится в массиве /api/rest/reviews/all
Корзина. Добавлен новый предмет
handler:CartAdd
1
- Для теста опционально можно передать item_id, inv_id, price_slider, unpack
item_id
- int — id добавленного предмета
inv_id
- int — id инвентаря. Может быть null
form
- arr — переданные данные формы. Подробнее описан как параметр команды "Корзина. Добавить товар в корзину"
extras
- arr — список id выбранных допов
price_slider
- arr — 0=>Id слайдера,1=>первое значение,2=>второе значение
unpack
- bln — клиент выбрал распакованный вариант
Корзина. Предмет удалён из корзины
handler:CartRemove
1
- Для теста опционально можно передать item_id
item_id
- int — id убранного предмета
Корзина. Корзина очищена от предметов
handler:CartClear
user_id
- int — id юзера
Корзина. У товара в корзине изменилось кол-во
handler:CartChangeCount
1
- Для теста опционально можно передать item_id, new_count
item_id
- int — id изменённого предмета
new_count
- int — новое кол-во