UNPKG

@cause-911/core

Version:

Run `npm install @cause-911/core --save` to add this library to your project

140 lines 9.92 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; export class ApiLookupService { /** * @param {?} http */ constructor(http) { this.http = http; this.http = http; } /** * @return {?} */ getIpInformation() { return new Observable((/** * @param {?} observer * @return {?} */ observer => { this.lookupIpWith_IpApi().subscribe((/** * @param {?} result * @return {?} */ result => { observer.next(result); observer.complete(); }), (/** * @return {?} */ () => { this.lookupIpWith_GeoIpDb().subscribe((/** * @param {?} result * @return {?} */ result => { observer.next(result); observer.complete(); }), (/** * @return {?} */ () => { observer.error('Can\'t lookup the IP address'); })); })); })); } /** * @private * @return {?} */ lookupIpWith_GeoIpDb() { return new Observable((/** * @param {?} observer * @return {?} */ observer => { this.http.get('http://geoip-db.com/json').subscribe((/** * @param {?} response * @return {?} */ response => { observer.next((/** @type {?} */ ({ country: response['country_code'], countryName: response['country_name'], stateName: response['state'], cityName: response['city'], longitude: response['longitude'], latitude: response['latitude'] }))); observer.complete(); }), (/** * @param {?} error * @return {?} */ error => { observer.error(error); })); })); } /** * @private * @return {?} */ lookupIpWith_IpApi() { return new Observable((/** * @param {?} observer * @return {?} */ observer => { this.http.get('http://ip-api.com/json').subscribe(((/** * @param {?} response * @return {?} */ response => { observer.next((/** @type {?} */ ({ country: response['countryCode'], countryName: response['country'], state: response['region'], stateName: response['regionName'], cityName: response['city'], isp: response['isp'], longitude: response['lon'], latitude: response['lat'] }))); observer.complete(); })), (/** * @param {?} error * @return {?} */ error => { observer.error(error); })); })); } } ApiLookupService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ ApiLookupService.ctorParameters = () => [ { type: HttpClient } ]; /** @nocollapse */ ApiLookupService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ApiLookupService_Factory() { return new ApiLookupService(i0.ɵɵinject(i1.HttpClient)); }, token: ApiLookupService, providedIn: "root" }); if (false) { /** * @type {?} * @private */ ApiLookupService.prototype.http; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWxvb2t1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNhdXNlLTkxMS9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9zZXJ2aWNlcy9hcGktbG9va3VwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7OztBQU1oQyxNQUFNLE9BQU8sZ0JBQWdCOzs7O0lBRTNCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQzs7OztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksVUFBVTs7OztRQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVM7Ozs7WUFBQyxNQUFNLENBQUMsRUFBRTtnQkFDM0MsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUM7OztZQUFFLEdBQUcsRUFBRTtnQkFDTixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxTQUFTOzs7O2dCQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUM3QyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLENBQUM7OztnQkFBRSxHQUFHLEVBQUU7b0JBQ04sUUFBUSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDLEVBQUMsQ0FBQztZQUNMLENBQUMsRUFBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUVPLG9CQUFvQjtRQUMxQixPQUFPLElBQUksVUFBVTs7OztRQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUMsU0FBUzs7OztZQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM3RCxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFXO29CQUN2QixPQUFPLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQztvQkFDakMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUM7b0JBQ3JDLFNBQVMsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDO29CQUM1QixRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztvQkFDMUIsU0FBUyxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUM7b0JBQ2hDLFFBQVEsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDO2lCQUMvQixFQUFBLENBQUMsQ0FBQztnQkFDSCxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQzs7OztZQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNULFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxFQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRU8sa0JBQWtCO1FBQ3hCLE9BQU8sSUFBSSxVQUFVOzs7O1FBQUMsUUFBUSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxTQUFTLENBQUM7Ozs7WUFBQyxRQUFRLENBQUMsRUFBRTtnQkFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBVztvQkFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUM7b0JBQ2hDLFdBQVcsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDO29CQUNoQyxLQUFLLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQztvQkFDekIsU0FBUyxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUM7b0JBQ2pDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDO29CQUMxQixHQUFHLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQztvQkFDcEIsU0FBUyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUM7b0JBQzFCLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDO2lCQUMxQixFQUFBLENBQUMsQ0FBQztnQkFDSCxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxFQUFDOzs7O1lBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ1YsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixDQUFDLEVBQUMsQ0FBQztRQUNMLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBN0RGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQU5PLFVBQVU7Ozs7Ozs7O0lBU0osZ0NBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QXBpTG9va3VwfSBmcm9tICcuLi9tb2RlbHMvYXBpLWxvb2t1cCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwaUxvb2t1cFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuICAgIHRoaXMuaHR0cCA9IGh0dHA7XG4gIH1cblxuICBwdWJsaWMgZ2V0SXBJbmZvcm1hdGlvbigpOiBPYnNlcnZhYmxlPEFwaUxvb2t1cD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICB0aGlzLmxvb2t1cElwV2l0aF9JcEFwaSgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICBvYnNlcnZlci5uZXh0KHJlc3VsdCk7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9LCAoKSA9PiB7XG4gICAgICAgIHRoaXMubG9va3VwSXBXaXRoX0dlb0lwRGIoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KHJlc3VsdCk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLmVycm9yKCdDYW5cXCd0IGxvb2t1cCB0aGUgSVAgYWRkcmVzcycpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb29rdXBJcFdpdGhfR2VvSXBEYigpOiBPYnNlcnZhYmxlPEFwaUxvb2t1cD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KCdodHRwOi8vZ2VvaXAtZGIuY29tL2pzb24nKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICBvYnNlcnZlci5uZXh0KDxBcGlMb29rdXA+e1xuICAgICAgICAgIGNvdW50cnk6IHJlc3BvbnNlWydjb3VudHJ5X2NvZGUnXSxcbiAgICAgICAgICBjb3VudHJ5TmFtZTogcmVzcG9uc2VbJ2NvdW50cnlfbmFtZSddLFxuICAgICAgICAgIHN0YXRlTmFtZTogcmVzcG9uc2VbJ3N0YXRlJ10sXG4gICAgICAgICAgY2l0eU5hbWU6IHJlc3BvbnNlWydjaXR5J10sXG4gICAgICAgICAgbG9uZ2l0dWRlOiByZXNwb25zZVsnbG9uZ2l0dWRlJ10sXG4gICAgICAgICAgbGF0aXR1ZGU6IHJlc3BvbnNlWydsYXRpdHVkZSddXG4gICAgICAgIH0pO1xuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICBvYnNlcnZlci5lcnJvcihlcnJvcik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9va3VwSXBXaXRoX0lwQXBpKCk6IE9ic2VydmFibGU8QXBpTG9va3VwPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIHRoaXMuaHR0cC5nZXQoJ2h0dHA6Ly9pcC1hcGkuY29tL2pzb24nKS5zdWJzY3JpYmUoKHJlc3BvbnNlID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCg8QXBpTG9va3VwPntcbiAgICAgICAgICBjb3VudHJ5OiByZXNwb25zZVsnY291bnRyeUNvZGUnXSxcbiAgICAgICAgICBjb3VudHJ5TmFtZTogcmVzcG9uc2VbJ2NvdW50cnknXSxcbiAgICAgICAgICBzdGF0ZTogcmVzcG9uc2VbJ3JlZ2lvbiddLFxuICAgICAgICAgIHN0YXRlTmFtZTogcmVzcG9uc2VbJ3JlZ2lvbk5hbWUnXSxcbiAgICAgICAgICBjaXR5TmFtZTogcmVzcG9uc2VbJ2NpdHknXSxcbiAgICAgICAgICBpc3A6IHJlc3BvbnNlWydpc3AnXSxcbiAgICAgICAgICBsb25naXR1ZGU6IHJlc3BvbnNlWydsb24nXSxcbiAgICAgICAgICBsYXRpdHVkZTogcmVzcG9uc2VbJ2xhdCddXG4gICAgICAgIH0pO1xuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfSksIGVycm9yID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==