Files
DiunaBI/Frontend/src/app/auth/auth.service.ts

51 lines
1.3 KiB
TypeScript

import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { environment } from 'src/environments/environment';
import { User } from '../models/user.model';
@Injectable({
providedIn: 'root'
})
export class AuthService {
apiToken!: string;
user!: User;
constructor(
private http$: HttpClient,
) { }
ping() {
return new Promise((resolve, reject) => {
this.http$.get<string>(`${environment.api.url}/ping/ping`).subscribe({
next: (data) => {
resolve(data);
},
error: (e) => {
console.error('Ping error', e);
reject(e);
}
}
);
});
}
getAPIToken(credentials: string): Promise<void> {
return new Promise((resolve, reject) => {
const header = new HttpHeaders().set('Content-type', 'application/json');
// eslint-disable-next-line @typescript-eslint/no-explicit-any
this.http$.post<any>(`${environment.api.url}/auth/apiToken`, JSON.stringify(credentials), { headers: header }).subscribe({
next: (data) => {
this.user.id = data.id;
this.apiToken = data.token;
resolve(data);
},
error: (e: HttpErrorResponse) => {
reject(e);
}
}
);
});
}
}