Skip to content
notification.interceptor.ts 1.44 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {JhiAlertService} from 'ng-jhipster';
import {HttpInterceptor, HttpRequest, HttpResponse, HttpHandler, HttpEvent} from '@angular/common/http';
import {Injector} from '@angular/core';
import {Observable} from 'rxjs/Observable';
wangqinghua's avatar
wangqinghua committed
import 'rxjs/add/operator/do';
wangqinghua's avatar
wangqinghua committed
import {NzNotificationService} from 'ng-zorro-antd';
wangqinghua's avatar
wangqinghua committed

export class NotificationInterceptor implements HttpInterceptor {

    private alertService: JhiAlertService;

    // tslint:disable-next-line: no-unused-variable
wangqinghua's avatar
wangqinghua committed
    constructor(private injector: Injector, public notification: NzNotificationService) {
wangqinghua's avatar
wangqinghua committed
        setTimeout(() => this.alertService = injector.get(JhiAlertService));
    }

    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        return next.handle(request).do((event: HttpEvent<any>) => {
            if (event instanceof HttpResponse) {
wangqinghua's avatar
wangqinghua committed
                if (event.status == 200) {
                    this.message(event.body);
wangqinghua's avatar
wangqinghua committed
                }
wangqinghua's avatar
wangqinghua committed
                const arr = event.headers.keys();  //返回头信息
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        }, (err: any) => {
        });
    }

    //正常:errCode = 10000
    message(data) {
wangqinghua's avatar
wangqinghua committed
        if (data && data.errCode) {
            const errCode = data.errCode;
            const errMsg = data.errMsg;
wangqinghua's avatar
wangqinghua committed
            if (errCode && errCode != 10000 && errCode != 10099) {
wangqinghua's avatar
wangqinghua committed
                this.notification.create('error', `错误码:${errCode}`, `${errMsg}`, {nzDuration: 2000});
            }
wangqinghua's avatar
wangqinghua committed
        }
wangqinghua's avatar
wangqinghua committed
    }
}