ns2-front-module-common
Version:
NS2 common module
138 lines (137 loc) • 7.67 kB
TypeScript
import { HttpService } from './http.service';
import { ResponseListModel } from '../models/response-list.model';
import { ChatCreateInfoModel } from '../models/chat-create-info.model';
import { MessageSearchResultModel } from '../models/message-search-result.model';
import { ChatMessageModel } from '../models/chat-message.model';
import { ChatInfoModel } from '../models/chat-info.model';
import { MemberInfoModel } from '../models/member-info.model';
import { ChatsServiceInterface } from '../intefraces/chats-service.interface';
import { Observable } from 'rxjs/Observable';
export declare class ChannelsService implements ChatsServiceInterface {
private httpService;
/**
* Base URL (точка входа) в микросервис сообщений
*/
private messagesEndPoint;
constructor(httpService: HttpService);
/**
* Создание чата (канала\группы)
* @param {ChatCreateInfoModel} chatData Информация для создания чата
* @returns {Promise<ChatInfoModel>}
*/
create(chatData: ChatCreateInfoModel): Promise<ChatInfoModel>;
/**
* Получение списка чатов пользователя (каналов\групп)
* @param {boolean} onlyMy Показывать только мои чаты
* @param {string} lastChatGuid Идентфиикатор последнего чата
* @param {string} stopChatGuid Идентификатор чата, до которого получить информацию
* @param {any} query Дополнительные параметры
* @returns {Promise<ResponseListModel<ChatInfoModel>>}
*/
getList(onlyMy: boolean, lastChatGuid?: string, stopChatGuid?: string, query?: any): Promise<ResponseListModel<ChatInfoModel>>;
/**
* Просмотр информации о чате (канала группы)
* @param {string} chatGuid Идентфикатор чата (канала\группы)
* @returns {Promise<ChatInfoModel>}
*/
getInfo(chatGuid: string): Promise<ChatInfoModel>;
/**
* Обновление информации о чате (канале\группе)
* @param {string} chatGuid Идентификатор чата (канала\группы)
* @param {ChatCreateInfoModel} params Параметры для обновления чата (канала\группы)
* @returns {Promise<ChatInfoModel>}
*/
update(chatGuid: string, params: ChatCreateInfoModel): Promise<ChatInfoModel>;
/**
* Удаление чата (канала\группы)
* @param {string} chatGuid Идентификатор чата (канала\группы)
* @returns {Promise<boolean>}
*/
remove(chatGuid: string): Promise<boolean>;
/**
* Присоединиться к публичному чату (канала\группы)
* @param {string} chatGuid Идентификатор чата (канала\группы)
* @returns {Promise<boolean>}
*/
join(chatGuid: string): Promise<boolean>;
/**
* Выход из чата (канала\группы)
* @param {string} chatGuid Идентификатор чата (канала\группы)
* @returns {Promise<boolean>}
*/
leave(chatGuid: string): Promise<boolean>;
/**
* Принять приглашение на вступление в чат
* @param {string} inviteGuid Идентификатор приглашения
*/
accept(inviteGuid: string): Promise<boolean>;
/**
* Отклонить приглашение на вступление в чат
* @param {string} inviteGuid Идентификатор приглашения
*/
refuse(inviteGuid: string): Promise<boolean>;
/**
* Приглашение пользователя в канал
* @param {string} channelGuid Идентификатор канала
* @param {string} userGuid Идентификатор пользователя
* @returns {Promise<MemberInfoModel>}
*/
invite(channelGuid: string, userGuid: string): Promise<MemberInfoModel>;
/**
* Поиск сообщений в чате
* @param {string} chatGuid Идентификтаор чата
* @param {string} query Строка поиска
* @param {string} messageGuid Идентификатор сообщения до которого необходимо искать
* @returns {Observable<MessageSearchResultModel>}
*/
searchMessages(chatGuid: string, query: string, messageGuid?: string): Observable<MessageSearchResultModel>;
/**
* Поиск по участникам канала
* @param channelGuid Индификатор канала в по списку участников которой производим поиск
* @param queryText Текст по которому ищем
* @param query Значение по которому производим поиск участников
*/
searchMembers(channelGuid: string, queryText: string, query?: any): Promise<ResponseListModel<string>>;
/**
* Поиск по чатам
* @param {string} queryText Текст для поиска
* @param {any} query Дополнительные параметры запроса
*/
search(queryText: string, query?: any): Promise<ResponseListModel<ChatInfoModel>>;
/**
* Получение истории сообщений
* @param {string} chatGuid Идентификатор чата (канала\группы)
* @param {string} messageGuid Идентификатор сообщения, от которого получать историю
* @param {string} startMessageGuid Идентификатор сообщения, до которого получать историю
* @param {number} numBefore Количество сообщений которые надо добавить до начального сообщения
* @param {any} query Дополнительные параметры
* @returns {Promise<ResponseListModel<ChatMessageModel>>}
*/
getHistory(chatGuid: string, messageGuid?: string, startMessageGuid?: string, numBefore?: number, query?: any): Promise<ResponseListModel<ChatMessageModel>>;
/**
* Получаем список участников канала
*
* @param {string} channelGuid Индификатор канала
* @param query Дополнительные параметры
*/
getMembers(channelGuid: string, query?: any): Promise<ResponseListModel<MemberInfoModel>>;
/**
* Удаление участника канала
* @param {string} channelGuid
* @param {string} userGuid
* @returns {Promise<boolean>}
*/
removeMember(channelGuid: string, userGuid: string): Promise<boolean>;
/**
* Получение информации о статусе приглашения для пользователей канала
* @param {string} channelGuid Идентификатор канала
* @param {string[]} userGuids Массив идентификаторов пользователей канала
* @return {Promise<MemberInfoModel[]>}
*/
getMembersInfo(channelGuid: string, userGuids: string[]): Promise<MemberInfoModel[]>;
/**
* Установка URL для сервиса сообщений
* @param messagesEndPoint
*/
setMessagesEndPoint(messagesEndPoint: string): void;
}