angular-kladr
Version:
Angular 4+ package for better experience using kladr api service
77 lines (76 loc) • 6.38 kB
JavaScript
/**
* @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";
var KladrService = /** @class */ (function () {
function KladrService(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
* @returns Observable<KladrResponse> Observable with received data or error message
*/
/**
* Makes api request
* @param {?} query of type KladrRequestParams
* @return {?} Observable<KladrResponse> Observable with received data or error message
*/
KladrService.prototype.api = /**
* Makes api request
* @param {?} query of type KladrRequestParams
* @return {?} Observable<KladrResponse> Observable with received data or error message
*/
function (query) {
/** @type {?} */
var apiUrl = this.url + '?';
Object.keys(query).forEach(function (key) {
apiUrl += key + "=" + query[key] + "&";
});
apiUrl += 'callback=JSONP_CALLBACK';
return this.jsonp.request(apiUrl).pipe(map(function (response) {
return (/** @type {?} */ (response.json())) || response.json();
}));
};
KladrService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
KladrService.ctorParameters = function () { return [
{ 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" });
return KladrService;
}());
export { KladrService };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2xhZHIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXIta2xhZHIvIiwic291cmNlcyI6WyJrbGFkci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0lBVWhDLHNCQUNZLE9BQ3VCLE9BQWdCO1FBRHZDLFVBQUssR0FBTCxLQUFLO1FBQ2tCLFlBQU8sR0FBUCxPQUFPLENBQVM7dUJBTHhCLHNCQUFzQjtvQkFDekIsU0FBUztxQkFDUixVQUFVO1FBSy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7S0FDdEY7SUFFRDs7OztPQUlHOzs7Ozs7SUFDSCwwQkFBRzs7Ozs7SUFBSCxVQUFJLEtBQXlCOztRQUN6QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLEdBQUc7WUFDMUIsTUFBTSxJQUFPLEdBQUcsU0FBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQUcsQ0FBQztTQUNyQyxDQUFDLENBQUM7UUFDSCxNQUFNLElBQUkseUJBQXlCLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ2xDLEdBQUcsQ0FBQyxVQUFDLFFBQWE7WUFDZCxPQUFPLG1CQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQW1CLEVBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDaEUsQ0FBQyxDQUNMLENBQUM7S0FDTDs7Z0JBL0JKLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7Ozs7Z0JBUlEsS0FBSztnQkFJTCxPQUFPLHVCQVlQLE1BQU0sU0FBQyxhQUFhOzs7dUJBbkI3Qjs7U0FZYSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLbGFkclJlc3BvbnNlIH0gZnJvbSAnLi9iYXNlLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBKc29ucCB9IGZyb20gJ0Bhbmd1bGFyL2h0dHAnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2xhZHJTZWFyY2hDb250ZXh0IH0gZnJvbSAnLi9rbGFkci1zZWFyY2gtY29udGV4dC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgS0xBRFJfT1BUSU9OUyB9IGZyb20gJy4vdG9rZW5zJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEtsYWRyU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmw7XG4gICAgcHJpdmF0ZSByZWFkb25seSBiYXNlVXJsID0gJ2tsYWRyLWFwaS5ydS9hcGkucGhwJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEhUVFAgPSAnaHR0cDovLyc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBIVFRQUyA9ICdodHRwczovLyc7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUganNvbnA6IEpzb25wLFxuICAgICAgICBASW5qZWN0KEtMQURSX09QVElPTlMpIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1xuICAgICkge1xuICAgICAgICB0aGlzLnVybCA9IG9wdGlvbnMuaXNTZWN1cmUgPyB0aGlzLkhUVFBTICsgdGhpcy5iYXNlVXJsIDogdGhpcy5IVFRQICsgdGhpcy5iYXNlVXJsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ha2VzIGFwaSByZXF1ZXN0XG4gICAgICogQHBhcmFtIHF1ZXJ5IG9mIHR5cGUgS2xhZHJSZXF1ZXN0UGFyYW1zXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxLbGFkclJlc3BvbnNlPiBPYnNlcnZhYmxlIHdpdGggcmVjZWl2ZWQgZGF0YSBvciBlcnJvciBtZXNzYWdlXG4gICAgICovXG4gICAgYXBpKHF1ZXJ5OiBLbGFkclNlYXJjaENvbnRleHQpOiBPYnNlcnZhYmxlPEtsYWRyUmVzcG9uc2U+IHtcbiAgICAgICAgbGV0IGFwaVVybCA9IHRoaXMudXJsICsgJz8nO1xuICAgICAgICBPYmplY3Qua2V5cyhxdWVyeSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgYXBpVXJsICs9IGAke2tleX09JHtxdWVyeVtrZXldfSZgO1xuICAgICAgICB9KTtcbiAgICAgICAgYXBpVXJsICs9ICdjYWxsYmFjaz1KU09OUF9DQUxMQkFDSyc7XG4gICAgICAgIHJldHVybiB0aGlzLmpzb25wLnJlcXVlc3QoYXBpVXJsKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChyZXNwb25zZS5qc29uKCkgYXMgS2xhZHJSZXNwb25zZSkgfHwgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=