UNPKG

ns2-front-module-common

Version:
197 lines 7.66 kB
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