feat: introduce reporting system and two-factor authentication (2FA)

- Added `ReportDialog` component for user-generated content reporting.
- Integrated `ReportService` with create, update, and fetch report functionalities.
- Enhanced `AuthService` with 2FA setup, enable, disable, and verification methods.
- Updated types to include 2FA responses and reporting-related data.
- Enhanced `ContentCard` UI to support reporting functionality.
- Improved admin services to manage user reports and statuses.
This commit is contained in:
Mathis HERRIOT
2026-01-29 13:48:59 +01:00
parent ba0234fd13
commit 13ccdbc2ab
6 changed files with 215 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
import api from "@/lib/api";
import type { Report, ReportStatus } from "./report.service";
export interface AdminStats {
users: number;
@@ -11,4 +12,21 @@ export const adminService = {
const response = await api.get("/admin/stats");
return response.data;
},
getReports: async (limit = 10, offset = 0): Promise<Report[]> => {
const response = await api.get("/reports", { params: { limit, offset } });
return response.data;
},
updateReportStatus: async (reportId: string, status: ReportStatus): Promise<void> => {
await api.patch(`/reports/${reportId}/status`, { status });
},
deleteUser: async (userId: string): Promise<void> => {
await api.delete(`/users/${userId}`);
},
updateUser: async (userId: string, data: any): Promise<void> => {
await api.patch(`/users/admin/${userId}`, data);
},
};