- Add pendingMemberships field to AdminStats DTO - Add 4th card 'Offene Mitgliedsanträge' to admin dashboard - Rename 'Offene Freigaben' to 'Ausstehende Freischaltungen' - Update DashboardService to count pending memberships - Update tests to match new AdminStats structure
32 lines
845 B
TypeScript
32 lines
845 B
TypeScript
import {inject, Injectable} from '@angular/core';
|
|
import {HttpClient} from '@angular/common/http';
|
|
import {Observable} from 'rxjs';
|
|
import {environment} from '../../environments/environment';
|
|
|
|
export interface AdminStats {
|
|
totalCommunities: number;
|
|
pendingUsers: number;
|
|
pendingMemberships: number;
|
|
totalActiveMemberships: number;
|
|
}
|
|
|
|
export interface UserStats {
|
|
totalMeteringPoints: number;
|
|
activeMemberships: number;
|
|
pendingMemberships: number;
|
|
}
|
|
|
|
@Injectable({providedIn: 'root'})
|
|
export class DashboardService {
|
|
private http = inject(HttpClient);
|
|
private apiUrl = `${environment.apiUrl}/api/dashboard`;
|
|
|
|
getAdminStats(): Observable<AdminStats> {
|
|
return this.http.get<AdminStats>(`${this.apiUrl}/admin`);
|
|
}
|
|
|
|
getUserStats(): Observable<UserStats> {
|
|
return this.http.get<UserStats>(`${this.apiUrl}/user`);
|
|
}
|
|
}
|