ns2-front-module-common
Version:
NS2 common module
165 lines • 7.51 kB
JavaScript
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