mirror of
https://github.com/MikroWizard/mikrofront.git
synced 2026-05-22 11:41:30 +00:00
Better License Error when pro License expired
This commit is contained in:
parent
7e3469a5da
commit
df1223b9e2
21 changed files with 321 additions and 8 deletions
55
src/app/providers/license-interceptor.service.ts
Normal file
55
src/app/providers/license-interceptor.service.ts
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import {
|
||||
HttpRequest,
|
||||
HttpHandler,
|
||||
HttpEvent,
|
||||
HttpInterceptor,
|
||||
HttpResponse
|
||||
} from '@angular/common/http';
|
||||
import { Observable, tap } from 'rxjs';
|
||||
import { LicenseService } from './license.service';
|
||||
|
||||
@Injectable()
|
||||
export class LicenseInterceptor implements HttpInterceptor {
|
||||
|
||||
// Pro-licensed API endpoints that should be monitored
|
||||
private readonly proEndpoints = [
|
||||
'monitoring/devs/get',
|
||||
'monitoring/events/get',
|
||||
'monitoring/eventunfixed/get',
|
||||
'/api/vpn/status',
|
||||
'networkmap/get',
|
||||
'snippet/sequence/list',
|
||||
'cloner/list',
|
||||
'/api/pssvault/get',
|
||||
'snippet/syslogregex/list'
|
||||
];
|
||||
|
||||
constructor(private licenseService: LicenseService) {}
|
||||
|
||||
private isProEndpoint(url: string): boolean {
|
||||
return this.proEndpoints.some(endpoint => url.includes(endpoint));
|
||||
}
|
||||
|
||||
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
|
||||
return next.handle(request).pipe(
|
||||
tap((event: HttpEvent<any>) => {
|
||||
if (event instanceof HttpResponse && this.isProEndpoint(request.url)) {
|
||||
const body = event.body;
|
||||
if (
|
||||
body &&
|
||||
body.result &&
|
||||
typeof body.result === 'object' &&
|
||||
body.result.err === 'License Expired' &&
|
||||
body.result.status === 'failed'
|
||||
) {
|
||||
this.licenseService.setExpired(true);
|
||||
} else {
|
||||
// Pro endpoint responded without license error — license is valid
|
||||
this.licenseService.setExpired(false);
|
||||
}
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue