Files
approagency-admin-panel/lib/api/authLogs.ts
T
2026-08-19 12:13:57 +03:30

37 lines
1.8 KiB
TypeScript

import { apiClient } from './client';
import { AuthLogFilters, AuthStats, PaginatedAuthLogs } from '@/types/auth-log';
const buildAuthLogQuery = (filters: AuthLogFilters): string => {
const params = new URLSearchParams();
if (filters.event) params.append('event', filters.event);
if (filters.mobile) params.append('mobile', filters.mobile);
if (filters.email) params.append('email', filters.email);
if (filters.package_name) params.append('package_name', filters.package_name);
if (filters.success !== undefined) params.append('success', filters.success ? '1' : '0');
if (filters.sms_only) params.append('sms_only', '1');
if (filters.date_from) params.append('date_from', filters.date_from);
if (filters.date_to) params.append('date_to', filters.date_to);
if (filters.time_from) params.append('time_from', filters.time_from);
if (filters.time_to) params.append('time_to', filters.time_to);
if (filters.sms_unit_cost !== undefined) params.append('sms_unit_cost', String(filters.sms_unit_cost));
if (filters.per_page) params.append('per_page', String(filters.per_page));
if (filters.page) params.append('page', String(filters.page));
return params.toString();
};
export const authLogsApi = {
// Aggregated OTP/SMS and login stats for the analytics cards and chart
getStats: async (filters: AuthLogFilters, token: string): Promise<AuthStats> => {
const qs = buildAuthLogQuery(filters);
return apiClient.get<AuthStats>(`/admin/auth-stats${qs ? `?${qs}` : ''}`, token);
},
// Raw paginated event log
getLogs: async (filters: AuthLogFilters, token: string): Promise<PaginatedAuthLogs> => {
const qs = buildAuthLogQuery(filters);
return apiClient.get<PaginatedAuthLogs>(`/admin/auth-logs${qs ? `?${qs}` : ''}`, token);
},
};