UNPKG

ns2-front-module-common

Version:
165 lines 7.51 kB
import { Injectable } from "@angular/core"; import { URLSearchParams } from '@angular/http'; import { HttpService } from "./http.service"; var PeersService = (function () { function PeersService(httpService) { this.httpService = httpService; } /** * Создание диалога между текущим пользователем и userGuid * @param {string} userGuid С кем создать диалог * @returns {Promise<ChatInfoModel>} */ PeersService.prototype.createPeer = function (userGuid) { var _this = this; return new Promise(function (resolve, reject) { var url = _this.messagesEndPoint + "peers/" + userGuid; _this.httpService.post(url, null) .map(function (response) { return response.json(); }) .map(function (response) { return response.data; }) .subscribe(resolve, reject); }); }; /** * Получение диалогов текущего пользователя * @param {string} lastPeerGuid Идентификатор диалога начиная с которого надо возвращать чаты * @param {string} stopPeerGuid Идентификатор диалога, до которого нужно получить чаты * @param {any} query Дополнительные условия * @returns {Promise<ResponseListModel<ChatInfoModel>>} */ PeersService.prototype.getPeers = function (lastPeerGuid, stopPeerGuid, query) { var _this = this; return new Promise(function (resolve, reject) { var url = _this.messagesEndPoint + "peers/list"; if (lastPeerGuid) { url += "/" + lastPeerGuid; if (stopPeerGuid) { url += "/" + stopPeerGuid; } } var params = new URLSearchParams(); if (query) { var keys = Object.keys(query); for (var i = 0; i < keys.length; i++) { var key = keys[i]; params.set(key, query[key]); } } _this.httpService.get(url, { params: params }) .map(function (response) { return response.json(); }) .map(function (response) { return response.data; }) .subscribe(resolve, reject); }); }; /** * Возвращает диалог * @param {string} peerGuid Идентификатор диалога * @returns {Promise<ChatInfoModel>} */ PeersService.prototype.getPeer = function (peerGuid) { var _this = this; return new Promise(function (resolve, reject) { var url = _this.messagesEndPoint + "peers/" + peerGuid; _this.httpService.get(url) .map(function (response) { return response.json(); }) .map(function (response) { return response.data; }) .subscribe(resolve, reject); }); }; /** * Получение истории сообщений диалога с пользователем * @param {string} peerGuid Идентификатор диалога * @param {string} messageGuid Идентификатор сообщения до которого необходимо получить записи истории * @param startMessageGuid Идентификатор сообщения с которого необходимо получить записи истории * @param numBefore Количество сообщений которые надо добавить до начального сообщения * @param query Дополнительные параметры * @returns {Promise<ResponseListModel<ChatMessageModel>>} */ PeersService.prototype.getHistory = function (peerGuid, messageGuid, startMessageGuid, numBefore, query) { var _this = this; return new Promise(function (resolve, reject) { var url = _this.messagesEndPoint + "peers/" + peerGuid + "/history"; if (messageGuid) { url += "/" + messageGuid; if (startMessageGuid) { url += "/" + startMessageGuid; if (numBefore) { url += "/" + numBefore; } } } var params = new URLSearchParams(); if (query) { var keys = Object.keys(query); for (var i = 0; i < keys.length; i++) { var key = keys[i]; params.set(key, query[key]); } } _this.httpService.get(url, { params: params }) .map(function (response) { return response.json(); }) .map(function (response) { return response.data; }) .subscribe(resolve, reject); }); }; /** * Метод для поиска (чатов) * @param {string} queryText Строка поиска * @param {any} query Дополнительные параметры запроса * @returns {Promise<ResponseListModel<ChatInfoModel>>} */ PeersService.prototype.search = function (queryText, query) { var _this = this; return new Promise(function (resolve, reject) { var url = _this.messagesEndPoint + "peers/search"; var params = new URLSearchParams(); params.set('q', queryText); if (query) { var keys = Object.keys(query); for (var i = 0; i < keys.length; i++) { var key = keys[i]; params.set(key, query[key]); } } return _this.httpService.get(url, { params: params }) .map(function (response) { return response.json(); }) .map(function (response) { return response.data; }) .subscribe(resolve, reject); }); }; /** * Метод для поиска сообщений * @param {string} peerGuid Идентификатор чата * @param {string} query Строка для поиска * @param {string} messageGuid Идентификатор сообщения до которого необходимо искать * @returns {Observable<MessageSearchResultModel>} */ PeersService.prototype.searchMessages = function (peerGuid, query, messageGuid) { var url = this.messagesEndPoint + "peers/" + peerGuid + "/search-messages"; if (messageGuid) { url += '/' + messageGuid; } url += '?q=' + query; return this.httpService.get(url) .map(function (response) { return response.json(); }) .map(function (response) { return response.data; }); }; /** * Установка URL до сервиса messaging * * @param messagesEndPoint */ PeersService.prototype.setMessagesEndPoint = function (messagesEndPoint) { this.messagesEndPoint = messagesEndPoint; }; return PeersService; }()); export { PeersService }; PeersService.decorators = [ { type: Injectable }, ]; /** @nocollapse */ PeersService.ctorParameters = function () { return [ { type: HttpService, }, ]; }; //# sourceMappingURL=peers.service.js.map