ns2-front-module-common
Version: 
NS2 common module
117 lines • 4.7 kB
JavaScript
import { Injectable } from '@angular/core';
import { URLSearchParams } from '@angular/http';
// Services
import { HttpService } from './http.service';
import { NotificationUrls } from '../urls/notification-urls.model';
// RxJS
import { Observable } from 'rxjs';
var NotificationService = (function () {
    function NotificationService(httpService) {
        this.httpService = httpService;
    }
    NotificationService.prototype.getInfo = function () {
        var _this = this;
        return new Promise(function (resolve, reject) {
            var url = NotificationUrls.messages;
            _this.httpService.get(url)
                .map(function (response) { return response.json(); })
                .map(function (response) { return response.data; })
                .subscribe(resolve, reject);
        });
    };
    /**
     * Получает список обработанных уведомлений
     * @param {any} query Параметры запроса
     * @returns {Promise<ResponseListModel<NotificationItemModel>>}
     */
    NotificationService.prototype.getProcessedList = function (query) {
        var _this = this;
        return new Promise(function (resolve, reject) {
            var url = NotificationUrls.processedList;
            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 {any} query Параметры запроса
     * @returns {Promise<ResponseListModel<NotificationItemModel>>}
     */
    NotificationService.prototype.getUnProcessedList = function (query) {
        var _this = this;
        return new Promise(function (resolve, reject) {
            var url = NotificationUrls.unProcessedList;
            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} operation_guid Guid операции
     * @returns {Observable<IResponse<any>>}
     */
    NotificationService.prototype.acceptNotification = function (operation_guid) {
        var _this = this;
        var url = NotificationUrls.actionWithNotification + "/" + operation_guid;
        var params = new URLSearchParams();
        return new Observable(function (observer) {
            _this.httpService.post(url, { params: params })
                .map(function (response) { return response.json(); })
                .subscribe(function (response) {
                observer.next(response.data);
                observer.complete();
            }, function (err) {
                observer.error(err);
            });
        });
    };
    /**
     * Отклонить уведомление
     * @param {string} operation_guid Guid операции
     * @returns {Observable<IResponse<any>>}
     */
    NotificationService.prototype.declineNotification = function (operation_guid) {
        var _this = this;
        var url = NotificationUrls.actionWithNotification + "/" + operation_guid;
        return new Observable(function (observer) {
            _this.httpService.delete(url)
                .map(function (response) { return response.json(); })
                .subscribe(function (response) {
                observer.next(response.data);
                observer.complete();
            }, function (err) {
                observer.error(err);
            });
        });
    };
    return NotificationService;
}());
export { NotificationService };
NotificationService.decorators = [
    { type: Injectable },
];
/** @nocollapse */
NotificationService.ctorParameters = function () { return [
    { type: HttpService, },
]; };
//# sourceMappingURL=notification.service.js.map