UNPKG

angular-kladr

Version:

Angular 4+ package for better experience using kladr api service

69 lines (68 loc) 5.87 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Injectable, Inject } from '@angular/core'; import { Jsonp } from '@angular/http'; import { map } from 'rxjs/operators'; import { KLADR_OPTIONS } from './tokens'; import { Options } from './options'; import * as i0 from "@angular/core"; import * as i1 from "@angular/http"; import * as i2 from "./tokens"; export class KladrService { /** * @param {?} jsonp * @param {?} options */ constructor(jsonp, options) { this.jsonp = jsonp; this.options = options; this.baseUrl = 'kladr-api.ru/api.php'; this.HTTP = 'http://'; this.HTTPS = 'https://'; this.url = options.isSecure ? this.HTTPS + this.baseUrl : this.HTTP + this.baseUrl; } /** * Makes api request * @param {?} query of type KladrRequestParams * @return {?} Observable<KladrResponse> Observable with received data or error message */ api(query) { /** @type {?} */ let apiUrl = this.url + '?'; Object.keys(query).forEach(key => { apiUrl += `${key}=${query[key]}&`; }); apiUrl += 'callback=JSONP_CALLBACK'; return this.jsonp.request(apiUrl).pipe(map((response) => { return (/** @type {?} */ (response.json())) || response.json(); })); } } KladrService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ KladrService.ctorParameters = () => [ { type: Jsonp }, { type: Options, decorators: [{ type: Inject, args: [KLADR_OPTIONS,] }] } ]; /** @nocollapse */ KladrService.ngInjectableDef = i0.defineInjectable({ factory: function KladrService_Factory() { return new KladrService(i0.inject(i1.Jsonp), i0.inject(i2.KLADR_OPTIONS)); }, token: KladrService, providedIn: "root" }); function KladrService_tsickle_Closure_declarations() { /** @type {?} */ KladrService.prototype.url; /** @type {?} */ KladrService.prototype.baseUrl; /** @type {?} */ KladrService.prototype.HTTP; /** @type {?} */ KladrService.prototype.HTTPS; /** @type {?} */ KladrService.prototype.jsonp; /** @type {?} */ KladrService.prototype.options; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2xhZHIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXIta2xhZHIvIiwic291cmNlcyI6WyJrbGFkci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFLcEMsTUFBTTs7Ozs7SUFLRixZQUNZLE9BQ3VCLE9BQWdCO1FBRHZDLFVBQUssR0FBTCxLQUFLO1FBQ2tCLFlBQU8sR0FBUCxPQUFPLENBQVM7dUJBTHhCLHNCQUFzQjtvQkFDekIsU0FBUztxQkFDUixVQUFVO1FBSy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7S0FDdEY7Ozs7OztJQU9ELEdBQUcsQ0FBQyxLQUF5Qjs7UUFDekIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1NBQ3JDLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSx5QkFBeUIsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDbEMsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDbEIsT0FBTyxtQkFBQyxRQUFRLENBQUMsSUFBSSxFQUFtQixFQUFDLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2hFLENBQUMsQ0FDTCxDQUFDO0tBQ0w7OztZQS9CSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozs7WUFSUSxLQUFLO1lBSUwsT0FBTyx1QkFZUCxNQUFNLFNBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2xhZHJSZXNwb25zZSB9IGZyb20gJy4vYmFzZS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSnNvbnAgfSBmcm9tICdAYW5ndWxhci9odHRwJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEtsYWRyU2VhcmNoQ29udGV4dCB9IGZyb20gJy4va2xhZHItc2VhcmNoLWNvbnRleHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEtMQURSX09QVElPTlMgfSBmcm9tICcuL3Rva2Vucyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBLbGFkclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYmFzZVVybCA9ICdrbGFkci1hcGkucnUvYXBpLnBocCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBIVFRQID0gJ2h0dHA6Ly8nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgSFRUUFMgPSAnaHR0cHM6Ly8nO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGpzb25wOiBKc29ucCxcbiAgICAgICAgQEluamVjdChLTEFEUl9PUFRJT05TKSBwcml2YXRlIG9wdGlvbnM6IE9wdGlvbnNcbiAgICApIHtcbiAgICAgICAgdGhpcy51cmwgPSBvcHRpb25zLmlzU2VjdXJlID8gdGhpcy5IVFRQUyArIHRoaXMuYmFzZVVybCA6IHRoaXMuSFRUUCArIHRoaXMuYmFzZVVybDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyBhcGkgcmVxdWVzdFxuICAgICAqIEBwYXJhbSBxdWVyeSBvZiB0eXBlIEtsYWRyUmVxdWVzdFBhcmFtc1xuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8S2xhZHJSZXNwb25zZT4gT2JzZXJ2YWJsZSB3aXRoIHJlY2VpdmVkIGRhdGEgb3IgZXJyb3IgbWVzc2FnZVxuICAgICAqL1xuICAgIGFwaShxdWVyeTogS2xhZHJTZWFyY2hDb250ZXh0KTogT2JzZXJ2YWJsZTxLbGFkclJlc3BvbnNlPiB7XG4gICAgICAgIGxldCBhcGlVcmwgPSB0aGlzLnVybCArICc/JztcbiAgICAgICAgT2JqZWN0LmtleXMocXVlcnkpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGFwaVVybCArPSBgJHtrZXl9PSR7cXVlcnlba2V5XX0mYDtcbiAgICAgICAgfSk7XG4gICAgICAgIGFwaVVybCArPSAnY2FsbGJhY2s9SlNPTlBfQ0FMTEJBQ0snO1xuICAgICAgICByZXR1cm4gdGhpcy5qc29ucC5yZXF1ZXN0KGFwaVVybCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAocmVzcG9uc2UuanNvbigpIGFzIEtsYWRyUmVzcG9uc2UpIHx8IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19