41 lines
992 B
TypeScript

import { HttpClient } from '@angular/common/http';
import { inject, Injectable } from '@angular/core';
import { of } from 'rxjs';
import { environment } from '../../../../environments/environment';
import EventService from '../EventService';
import ApiKey from '../../models/api-key';
@Injectable({
providedIn: 'root'
})
export class ApiKeyService {
private readonly http = inject(HttpClient);
private readonly events = inject(EventService);
private keys: ApiKey[] = [];
private loaded = false;
constructor() {
this.events.listen('logoff', () => {
this.keys = [];
this.loaded = false;
});
}
fetch(force: boolean = false) {
if (!force && this.loaded)
return of(this.keys);
const $ = this.http.get<ApiKey[]>(environment.API_HOST + '/keys', {
headers: {
'Authorization': 'Bearer ' + localStorage.getItem('jwt'),
}
});
$.subscribe(d => {
this.keys = d;
this.loaded = true;
});
return $;
}
}