eeg_portal/eeg_frontend/src/app/services/dashboard.ts
Bernhard Müller 949e1e6c34 feat(dashboard): add pending memberships card to admin overview
- 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
2026-07-22 10:59:01 +02:00

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`);
}
}