@ksakira10/ngx-via-cep
Version:
A Angular package for ViaCEP (https://viacep.com.br/)
117 lines • 9.49 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
import { Inject, Injectable, Optional } from '@angular/core';
import { Subject } from 'rxjs';
import { NgxViaCepConfiguration } from './ngx-via-cep.configuration';
import { BASE_PATH } from './ngx-via-cep.variables';
export class NgxViaCepService {
/**
* @param {?} http
* @param {?} basePath
* @param {?} configuration
*/
constructor(http, basePath, configuration) {
this.http = http;
this.basePath = 'https://viacep.com.br/ws';
this.defaultHeaders = new HttpHeaders();
this.configuration = new NgxViaCepConfiguration();
this.urlFetchByCEP = (/**
* @param {?} cep
* @return {?}
*/
(cep) => `${this.basePath}/${cep}/json/`);
this.urlFetchByAddressSP = (/**
* @param {?} address
* @param {?=} state
* @param {?=} city
* @return {?}
*/
(address, state = 'SP', city = 'São Paulo') => `${this.basePath}/${encodeURIComponent(state)}/${encodeURIComponent(city)}/${encodeURIComponent(address)}/json/`);
this.fetchByCEP = (/**
* @param {?} cep
* @return {?}
*/
(cep) => {
/** @type {?} */
const subject = new Subject();
cep = cep.replace(/[!@#$%^&*a-zA-Z.-]/gi, '');
if (/\d{8}/.test(cep)) {
return this.http.get(this.urlFetchByCEP(cep));
}
subject.error(new HttpErrorResponse({
status: 412,
statusText: 'Precondition failed',
error: { code: 1, message: 'length must be equals 8' }
}));
return subject.asObservable();
});
this.fetchByAddressSaoPaulo = (/**
* @param {?} address
* @return {?}
*/
(address) => {
return this.http.get(this.urlFetchByAddressSP(address));
});
this.fetchByAddress = (/**
* @param {?} state
* @param {?} city
* @param {?} address
* @return {?}
*/
(state, city, address) => {
return this.http.get(this.urlFetchByAddressSP(address, state, city));
});
if (basePath) {
this.basePath = basePath;
}
if (configuration) {
this.configuration = configuration;
this.basePath = basePath || configuration.basePath || this.basePath;
}
}
}
NgxViaCepService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
NgxViaCepService.ctorParameters = () => [
{ type: HttpClient },
{ type: String, decorators: [{ type: Optional }, { type: Inject, args: [BASE_PATH,] }] },
{ type: NgxViaCepConfiguration, decorators: [{ type: Optional }] }
];
if (false) {
/**
* @type {?}
* @protected
*/
NgxViaCepService.prototype.basePath;
/** @type {?} */
NgxViaCepService.prototype.defaultHeaders;
/** @type {?} */
NgxViaCepService.prototype.configuration;
/**
* @type {?}
* @private
*/
NgxViaCepService.prototype.urlFetchByCEP;
/**
* @type {?}
* @private
*/
NgxViaCepService.prototype.urlFetchByAddressSP;
/** @type {?} */
NgxViaCepService.prototype.fetchByCEP;
/** @type {?} */
NgxViaCepService.prototype.fetchByAddressSaoPaulo;
/** @type {?} */
NgxViaCepService.prototype.fetchByAddress;
/**
* @type {?}
* @protected
*/
NgxViaCepService.prototype.http;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZpYS1jZXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Brc2FraXJhMTAvbmd4LXZpYS1jZXAvIiwic291cmNlcyI6WyJsaWIvbmd4LXZpYS1jZXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsV0FBVyxFQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3BELE1BQU0sT0FBTyxnQkFBZ0I7Ozs7OztJQWUzQixZQUNZLElBQWdCLEVBQ0ssUUFBZ0IsRUFDbkMsYUFBcUM7UUFGdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWZsQixhQUFRLEdBQUcsMEJBQTBCLENBQUM7UUFDekMsbUJBQWMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ25DLGtCQUFhLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQ25DLGtCQUFhOzs7O1FBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUMvQyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksR0FBRyxRQUFRLEVBQUM7UUFDakIsd0JBQW1COzs7Ozs7UUFBRyxDQUNyQyxPQUFlLEVBQ2YsUUFBZ0IsSUFBSSxFQUNwQixPQUFlLFdBQVcsRUFDMUIsRUFBRSxDQUNGLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxrQkFBa0IsQ0FDakUsSUFBSSxDQUNMLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBQztRQWdCcEMsZUFBVTs7OztRQUFHLENBQUMsR0FBVyxFQUFtQixFQUFFOztrQkFDN0MsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFxQjtZQUNoRCxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUU5QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQy9DO1lBRUQsT0FBTyxDQUFDLEtBQUssQ0FDWCxJQUFJLGlCQUFpQixDQUFDO2dCQUNwQixNQUFNLEVBQUUsR0FBRztnQkFDWCxVQUFVLEVBQUUscUJBQXFCO2dCQUNqQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRTthQUN2RCxDQUFDLENBQ0gsQ0FBQztZQUNGLE9BQU8sT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hDLENBQUMsRUFBQztRQUVLLDJCQUFzQjs7OztRQUFHLENBQUMsT0FBZSxFQUFtQixFQUFFO1lBQ25FLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxFQUFDO1FBRUssbUJBQWM7Ozs7OztRQUFHLENBQ3RCLEtBQWEsRUFDYixJQUFZLEVBQ1osT0FBZSxFQUNFLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsRUFBQztRQXJDQSxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxhQUFhLEVBQUU7WUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQzs7O1lBNUJGLFVBQVU7Ozs7WUFUVCxVQUFVO3lDQTJCUCxRQUFRLFlBQUksTUFBTSxTQUFDLFNBQVM7WUFyQnhCLHNCQUFzQix1QkFzQjFCLFFBQVE7Ozs7Ozs7SUFqQlgsb0NBQWdEOztJQUNoRCwwQ0FBMEM7O0lBQzFDLHlDQUFvRDs7Ozs7SUFDcEQseUNBQ2tDOzs7OztJQUNsQywrQ0FPMkM7O0lBZ0IzQyxzQ0FnQkU7O0lBRUYsa0RBRUU7O0lBRUYsMENBTUU7Ozs7O0lBekNBLGdDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBDbGllbnQsXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwSGVhZGVyc1xufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOZ3hWaWFDZXBDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9uZ3gtdmlhLWNlcC5jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEJBU0VfUEFUSCB9IGZyb20gJy4vbmd4LXZpYS1jZXAudmFyaWFibGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5neFZpYUNlcFNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgYmFzZVBhdGggPSAnaHR0cHM6Ly92aWFjZXAuY29tLmJyL3dzJztcbiAgcHVibGljIGRlZmF1bHRIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gIHB1YmxpYyBjb25maWd1cmF0aW9uID0gbmV3IE5neFZpYUNlcENvbmZpZ3VyYXRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmxGZXRjaEJ5Q0VQID0gKGNlcDogc3RyaW5nKSA9PlxuICAgIGAke3RoaXMuYmFzZVBhdGh9LyR7Y2VwfS9qc29uL2A7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXJsRmV0Y2hCeUFkZHJlc3NTUCA9IChcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgc3RhdGU6IHN0cmluZyA9ICdTUCcsXG4gICAgY2l0eTogc3RyaW5nID0gJ1PDo28gUGF1bG8nXG4gICkgPT5cbiAgICBgJHt0aGlzLmJhc2VQYXRofS8ke2VuY29kZVVSSUNvbXBvbmVudChzdGF0ZSl9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KFxuICAgICAgY2l0eVxuICAgICl9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KGFkZHJlc3MpfS9qc29uL2A7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChCQVNFX1BBVEgpIGJhc2VQYXRoOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKCkgY29uZmlndXJhdGlvbjogTmd4VmlhQ2VwQ29uZmlndXJhdGlvblxuICApIHtcbiAgICBpZiAoYmFzZVBhdGgpIHtcbiAgICAgIHRoaXMuYmFzZVBhdGggPSBiYXNlUGF0aDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGggfHwgY29uZmlndXJhdGlvbi5iYXNlUGF0aCB8fCB0aGlzLmJhc2VQYXRoO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmZXRjaEJ5Q0VQID0gKGNlcDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8SHR0cEVycm9yUmVzcG9uc2U+KCk7XG4gICAgY2VwID0gY2VwLnJlcGxhY2UoL1shQCMkJV4mKmEtekEtWi4tXS9naSwgJycpO1xuXG4gICAgaWYgKC9cXGR7OH0vLnRlc3QoY2VwKSkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy51cmxGZXRjaEJ5Q0VQKGNlcCkpO1xuICAgIH1cblxuICAgIHN1YmplY3QuZXJyb3IoXG4gICAgICBuZXcgSHR0cEVycm9yUmVzcG9uc2Uoe1xuICAgICAgICBzdGF0dXM6IDQxMixcbiAgICAgICAgc3RhdHVzVGV4dDogJ1ByZWNvbmRpdGlvbiBmYWlsZWQnLFxuICAgICAgICBlcnJvcjogeyBjb2RlOiAxLCBtZXNzYWdlOiAnbGVuZ3RoIG11c3QgYmUgZXF1YWxzIDgnIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfTtcblxuICBwdWJsaWMgZmV0Y2hCeUFkZHJlc3NTYW9QYXVsbyA9IChhZGRyZXNzOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMudXJsRmV0Y2hCeUFkZHJlc3NTUChhZGRyZXNzKSk7XG4gIH07XG5cbiAgcHVibGljIGZldGNoQnlBZGRyZXNzID0gKFxuICAgIHN0YXRlOiBzdHJpbmcsXG4gICAgY2l0eTogc3RyaW5nLFxuICAgIGFkZHJlc3M6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMudXJsRmV0Y2hCeUFkZHJlc3NTUChhZGRyZXNzLCBzdGF0ZSwgY2l0eSkpO1xuICB9O1xufVxuIl19