ns2-front-module-common
Version:
NS2 common module
197 lines • 7.66 kB
JavaScript
import { URLSearchParams } from '@angular/http';
import { Injectable } from '@angular/core';
import { HttpService } from './http.service';
import { RealtorsUrls } from '../urls/realtors-urls.model';
/**
* Сервис риэлтеров
*/
var RealtorsService = (function () {
function RealtorsService(httpService) {
this.httpService = httpService;
}
/**
* Поиск риэлтеров
*
* @param query строка поиска
* @param params дополнительные параметры для запроса
*/
RealtorsService.prototype.search = function (query, params) {
var _this = this;
return new Promise(function (resolve, reject) {
var options = { search: new URLSearchParams() };
Object.keys(params).forEach(function (key) {
options.search.set(key, params[key]);
});
options.search.set('query', query);
_this.httpService.get(RealtorsUrls.search, options)
.map(function (response) { return response.json(); })
.map(function (response) { return response.data; })
.subscribe(resolve, reject);
});
};
/**
* Получить список всех риелторов пользователя
*
* @param userGuid
* @returns {Promise<T>}
*/
RealtorsService.prototype.getPartners = function (userGuid) {
var _this = this;
return new Promise(function (resolve, reject) {
var url = _this.usersEndPoint + 'users/' + userGuid + '/partners';
_this.httpService.get(url)
.map(function (response) { return response.json(); })
.map(function (response) { return response.data; })
.subscribe(resolve, reject);
});
};
/**
* Добавить избранных риелторов пользователю
*
* @param userGuid
* @param realtorsGuids
* @returns {Promise<T>}
*/
RealtorsService.prototype.addPartners = function (userGuid, realtorsGuids) {
var _this = this;
return new Promise(function (resolve, reject) {
var url = _this.usersEndPoint + 'users/' + userGuid + '/partners';
_this.httpService.put(url, realtorsGuids)
.map(function (response) { return response.json(); })
.map(function (response) { return response.data; })
.subscribe(resolve, reject);
});
};
/**
* Установить избранных риелторов пользователю
*
* @param userGuid
* @param realtors
* @returns {Promise<T>}
*/
RealtorsService.prototype.setPartners = function (userGuid, realtors) {
var _this = this;
return new Promise(function (resolve, reject) {
var url = _this.usersEndPoint + 'users/' + userGuid + '/partners';
_this.httpService.post(url, realtors)
.map(function (response) { return response.json(); })
.map(function (response) { return response.data; })
.subscribe(resolve, reject);
});
};
/**
* Удалить избранных риелторов
*
* @param userGuid
* @param realtorGuid
* @returns {Promise<T>}
*/
RealtorsService.prototype.deletePartner = function (userGuid, realtorGuid) {
var _this = this;
return new Promise(function (resolve, reject) {
var url = _this.usersEndPoint + 'users/' + userGuid + '/partner/' + realtorGuid;
_this.httpService.delete(url)
.map(function (response) { return response.json(); })
.map(function (response) { return response.data; })
.subscribe(resolve, reject);
});
};
/**
* Фильтр по риелторам
*
* @returns {Promise<T>}
* @param body
* @param query
*/
RealtorsService.prototype.filter = function (body, query) {
var _this = this;
return new Promise(function (resolve, reject) {
var search = new URLSearchParams();
if (query) {
var keys = Object.keys(query);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
search.set(key, query[key]);
}
}
_this.httpService.post(RealtorsUrls.list, body, { search: search })
.map(function (response) { return response.json(); })
.map(function (response) { return response.data; })
.subscribe(resolve, reject);
});
};
/**
* Фильтр по риелторам
* @returns {Promise<ResponseListModel<RealtorModel>>}
* @param body
* @param query
*/
RealtorsService.prototype.filterMembers = function (body, query) {
var _this = this;
return new Promise(function (resolve, reject) {
var url = _this.usersEndPoint + "users/filter-members";
var search = new URLSearchParams();
if (query) {
var keys = Object.keys(query);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
search.set(key, query[key]);
}
}
_this.httpService.post(url, body, { search: search })
.map(function (response) { return response.json(); })
.map(function (response) { return response.data; })
.subscribe(resolve, reject);
});
};
/**
* Получает информацию о риелторе по его идентификатору
* @param {string} guid Идентификатор риелтора
* @returns {Promise<T>}
*/
RealtorsService.prototype.load = function (guid) {
var _this = this;
return new Promise(function (resolve, reject) {
var url = _this.usersEndPoint + "users/" + guid;
_this.httpService.get(url)
.map(function (response) { return response.json(); })
.map(function (response) { return response.data; })
.subscribe(resolve, reject);
});
};
/**
* Получение моделей пользователей по массиву идентификаторов
* @param {string[]} guids Массив идентификаторов
* @returns {Promise<any>}
*/
RealtorsService.prototype.getUsersByGuids = function (guids) {
var _this = this;
return new Promise(function (resolve, reject) {
var url = _this.usersEndPoint + "users/get-by-guids";
_this.httpService.post(url, guids)
.map(function (response) { return response.json(); })
.map(function (response) { return response.data; })
.subscribe(resolve, reject);
});
};
/**
* Установка URL до сервиса users
*
* @param usersEndPoint
*/
RealtorsService.prototype.setUsersEndPoint = function (usersEndPoint) {
this.usersEndPoint = usersEndPoint;
};
return RealtorsService;
}());
export { RealtorsService };
RealtorsService.ESB_REALTORS_CHANNEL_NAME = 'realtors';
RealtorsService.ESB_REALTORS_SHOW_INFO = 'info.show';
RealtorsService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
RealtorsService.ctorParameters = function () { return [
{ type: HttpService, },
]; };
//# sourceMappingURL=realtors.service.js.map