UNPKG

bfend

Version:

Admin template base on ng-zorro-antd

91 lines 9.74 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { throwError } from 'rxjs'; import { Injectable } from '@angular/core'; import { HttpErrorResponse, HttpEventType } from '@angular/common/http'; import { tap, finalize, catchError } from 'rxjs/operators'; import { NzMessageService } from 'ng-zorro-antd'; import { BfApiError } from './api.error'; import { HTTP_MANAGE_ZONE, BfHttpService } from './http.service'; export class BfHttpManagedInterceptor { /** * @param {?} http * @param {?} nzMessage */ constructor(http, nzMessage) { this.http = http; this.nzMessage = nzMessage; } /** * @param {?} req * @param {?} next * @return {?} */ intercept(req, next) { return next.handle(req).pipe(tap(res => { if (res.type === HttpEventType.Sent && this.isAutoLoading(req)) { this.http.setLoading(true); } }), catchError(err => { if (this.isHandleError(req)) { if (err instanceof BfApiError) { this.nzMessage.error(err.toString(), { nzDuration: 3000 }); } else if (err instanceof HttpErrorResponse) { switch (err.status) { case 422: /** @type {?} */ const msg = []; if (err.error && err.error.errors) { for (const i of Object.keys(err.error.errors)) { for (const e of err.error.errors[i]) { msg.push(e); } } } this.nzMessage.error(msg.length > 0 ? msg.join('<br>') : '数据校验失败', { nzDuration: 3000 }); break; default: this.nzMessage.error('网络错误,请稍后再试', { nzDuration: 3000 }); } } } return throwError(err); }), finalize(() => { if (this.isAutoLoading(req)) { // 自动 Loading this.http.setLoading(false); } })); } /** * @param {?} req * @return {?} */ isAutoLoading(req) { return !req.url.startsWith('assets') && (Zone.current.name !== HTTP_MANAGE_ZONE || Zone.current.get('auto_loading')); } /** * @param {?} req * @return {?} */ isHandleError(req) { return !req.url.startsWith('assets') && (Zone.current.name !== HTTP_MANAGE_ZONE || Zone.current.get('handle_error')); } } BfHttpManagedInterceptor.decorators = [ { type: Injectable }, ]; BfHttpManagedInterceptor.ctorParameters = () => [ { type: BfHttpService }, { type: NzMessageService } ]; if (false) { /** @type {?} */ BfHttpManagedInterceptor.prototype.http; /** @type {?} */ BfHttpManagedInterceptor.prototype.nzMessage; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tYW5hZ2VkLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYmZlbmQvIiwic291cmNlcyI6WyJsaWIvaHR0cC9odHRwLW1hbmFnZWQuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsaUJBQWlCLEVBRWpCLGFBQWEsRUFJZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRSxNQUFNOzs7OztJQUNKLFlBQW9CLElBQW1CLEVBQVUsU0FBMkI7UUFBeEQsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUcsQ0FBQzs7Ozs7O0lBRWhGLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNSLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVCO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2YsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQixJQUFJLEdBQUcsWUFBWSxVQUFVLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO2lCQUMxRDtxQkFBTSxJQUFJLEdBQUcsWUFBWSxpQkFBaUIsRUFBRTtvQkFDM0MsUUFBUSxHQUFHLENBQUMsTUFBTSxFQUFFO3dCQUNsQixLQUFLLEdBQUc7O2tDQUNBLEdBQUcsR0FBRyxFQUFFOzRCQUVkLElBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQ0FDakMsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7b0NBQzdDLEtBQUssTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0NBQ25DLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7cUNBQ2I7aUNBQ0Y7NkJBQ0Y7NEJBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDOzRCQUV2RixNQUFNO3dCQUVSOzRCQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO3FCQUMxRDtpQkFDRjthQUNGO1lBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDM0IsYUFBYTtnQkFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzs7OztJQUVPLGFBQWEsQ0FBQyxHQUFxQjtRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7Ozs7O0lBRU8sYUFBYSxDQUFDLEdBQXFCO1FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDdkgsQ0FBQzs7O1lBdkRGLFVBQVU7OztZQUZnQixhQUFhO1lBSC9CLGdCQUFnQjs7OztJQU9YLHdDQUEyQjs7SUFBRSw2Q0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Rocm93RXJyb3IsICBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgSHR0cEV2ZW50LFxuICBIdHRwRXZlbnRUeXBlLFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cEludGVyY2VwdG9yIGFzIEh0dHBJbnRlcmNlcHRvckludGVyZmFjZSxcbiAgSHR0cFJlcXVlc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgdGFwLCBmaW5hbGl6ZSwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE56TWVzc2FnZVNlcnZpY2UgfSBmcm9tICduZy16b3Jyby1hbnRkJztcblxuaW1wb3J0IHsgQmZBcGlFcnJvciB9IGZyb20gJy4vYXBpLmVycm9yJztcbmltcG9ydCB7IEhUVFBfTUFOQUdFX1pPTkUsIEJmSHR0cFNlcnZpY2UgfSBmcm9tICcuL2h0dHAuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCZkh0dHBNYW5hZ2VkSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3JJbnRlcmZhY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEJmSHR0cFNlcnZpY2UsIHByaXZhdGUgbnpNZXNzYWdlOiBOek1lc3NhZ2VTZXJ2aWNlKSB7fVxuXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXG4gICAgICB0YXAocmVzID0+IHtcbiAgICAgICAgaWYgKHJlcy50eXBlID09PSBIdHRwRXZlbnRUeXBlLlNlbnQgJiYgdGhpcy5pc0F1dG9Mb2FkaW5nKHJlcSkpIHtcbiAgICAgICAgICB0aGlzLmh0dHAuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzSGFuZGxlRXJyb3IocmVxKSkge1xuICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBCZkFwaUVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLm56TWVzc2FnZS5lcnJvcihlcnIudG9TdHJpbmcoKSwge256RHVyYXRpb246IDMwMDB9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGVyciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGVyci5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgY2FzZSA0MjI6XG4gICAgICAgICAgICAgICAgY29uc3QgbXNnID0gW107XG5cbiAgICAgICAgICAgICAgICBpZiAoZXJyLmVycm9yICYmIGVyci5lcnJvci5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhlcnIuZXJyb3IuZXJyb3JzKSkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGUgb2YgZXJyLmVycm9yLmVycm9yc1tpXSkge1xuICAgICAgICAgICAgICAgICAgICAgIG1zZy5wdXNoKGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5uek1lc3NhZ2UuZXJyb3IobXNnLmxlbmd0aCA+IDAgPyBtc2cuam9pbignPGJyPicpIDogJ+aVsOaNruagoemqjOWksei0pScsIHtuekR1cmF0aW9uOiAzMDAwfSk7XG5cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMubnpNZXNzYWdlLmVycm9yKCfnvZHnu5zplJnor6/vvIzor7fnqI3lkI7lho3or5UnLCB7bnpEdXJhdGlvbjogMzAwMH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNBdXRvTG9hZGluZyhyZXEpKSB7XG4gICAgICAgICAgLy8g6Ieq5YqoIExvYWRpbmdcbiAgICAgICAgICB0aGlzLmh0dHAuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBdXRvTG9hZGluZyhyZXE6IEh0dHBSZXF1ZXN0PGFueT4pIHtcbiAgICByZXR1cm4gIXJlcS51cmwuc3RhcnRzV2l0aCgnYXNzZXRzJykgJiYgKFpvbmUuY3VycmVudC5uYW1lICE9PSBIVFRQX01BTkFHRV9aT05FIHx8IFpvbmUuY3VycmVudC5nZXQoJ2F1dG9fbG9hZGluZycpKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNIYW5kbGVFcnJvcihyZXE6IEh0dHBSZXF1ZXN0PGFueT4pIHtcbiAgICByZXR1cm4gIXJlcS51cmwuc3RhcnRzV2l0aCgnYXNzZXRzJykgJiYgKFpvbmUuY3VycmVudC5uYW1lICE9PSBIVFRQX01BTkFHRV9aT05FIHx8IFpvbmUuY3VycmVudC5nZXQoJ2hhbmRsZV9lcnJvcicpKTtcbiAgfVxufVxuIl19