payment-backoffice/app/services/dashboardService.ts
2025-12-27 10:57:56 +01:00

43 lines
1.0 KiB
TypeScript

import { BehaviorSubject, Observable } from "rxjs";
import { IDashboardData } from "./types";
import { getDashboardData } from "./transactions";
class DashboardService {
private dashboardData$ = new BehaviorSubject<IDashboardData | null>(null);
/**
* Get observable for dashboard data
*/
getDashboardData$(): Observable<IDashboardData | null> {
return this.dashboardData$.asObservable();
}
/**
* Get current dashboard data
*/
getCurrentDashboardData(): IDashboardData | null {
return this.dashboardData$.getValue();
}
/**
* Update dashboard data (called when fetching new data)
*/
updateDashboardData(data: IDashboardData): void {
this.dashboardData$.next(data);
}
/**
* Fetch and update dashboard data
*/
async fetchDashboardData(params: {
dateStart?: string;
dateEnd?: string;
}): Promise<IDashboardData> {
const data = await getDashboardData(params);
this.updateDashboardData(data);
return data;
}
}
export const dashboardService = new DashboardService();