feat(admin): implement admin statistics API and service

Add admin statistics endpoint to provide user, content, and category stats. Introduce `AdminModule` with controller, service, and repository integration for data aggregation. Include frontend service to consume the stats API.
This commit is contained in:
Mathis HERRIOT
2026-01-14 21:44:14 +01:00
parent 47d6fcb6a0
commit 6ce58d1639
4 changed files with 72 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
import { Injectable } from "@nestjs/common";
import { UsersRepository } from "../users/repositories/users.repository";
import { ContentsRepository } from "../contents/repositories/contents.repository";
import { CategoriesRepository } from "../categories/repositories/categories.repository";
@Injectable()
export class AdminService {
constructor(
private readonly usersRepository: UsersRepository,
private readonly contentsRepository: ContentsRepository,
private readonly categoriesRepository: CategoriesRepository,
) {}
async getStats() {
const [userCount, contentCount, categoryCount] = await Promise.all([
this.usersRepository.countAll(),
this.contentsRepository.count({}),
this.categoriesRepository.countAll(),
]);
return {
users: userCount,
contents: contentCount,
categories: categoryCount,
};
}
}