Files
gridpilot.gg/apps/website/lib/builders/view-data/AdminDashboardViewDataBuilder.ts
Marc Mintel 046852703f
Some checks failed
Contract Testing / contract-tests (pull_request) Failing after 5m51s
Contract Testing / contract-snapshot (pull_request) Has been skipped
view data fixes
2026-01-24 12:14:08 +01:00

28 lines
1000 B
TypeScript

import type { ViewDataBuilder } from '../../contracts/builders/ViewDataBuilder';
import type { DashboardStatsResponseDto } from '../../types/generated/DashboardStatsResponseDTO';
import type { AdminDashboardViewData } from '../../view-data/AdminDashboardViewData';
export class AdminDashboardViewDataBuilder {
/**
* Transform API DTO to ViewData
*
* @param apiDto - The DTO from the service
* @returns ViewData for the admin dashboard
*/
public static build(apiDto: DashboardStatsResponseDto): AdminDashboardViewData {
return {
stats: {
totalUsers: apiDto.totalUsers,
activeUsers: apiDto.activeUsers,
suspendedUsers: apiDto.suspendedUsers,
deletedUsers: apiDto.deletedUsers,
systemAdmins: apiDto.systemAdmins,
recentLogins: apiDto.recentLogins,
newUsersToday: apiDto.newUsersToday,
},
};
}
}
AdminDashboardViewDataBuilder satisfies ViewDataBuilder<DashboardStatsResponseDto, AdminDashboardViewData>;