@cause-911/core
Version:
Run `npm install @cause-911/core --save` to add this library to your project
140 lines • 9.92 kB
JavaScript
/**
* @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==