23 lines
1.1 KiB
TypeScript
23 lines
1.1 KiB
TypeScript
import { apiClient } from './client';
|
|
import { Purchase, Paginated, PurchaseFilters } from '@/types/purchase';
|
|
|
|
export const purchasesApi = {
|
|
// List all subscription purchases with optional filters
|
|
getPurchases: async (filters: PurchaseFilters, token: string): Promise<Paginated<Purchase>> => {
|
|
const params = new URLSearchParams();
|
|
|
|
if (filters.email) params.append('email', filters.email);
|
|
if (filters.mobile) params.append('mobile', filters.mobile);
|
|
if (filters.package_name) params.append('package_name', filters.package_name);
|
|
if (filters.gateway) params.append('gateway', filters.gateway);
|
|
if (filters.status !== undefined && filters.status !== null) {
|
|
params.append('status', String(filters.status));
|
|
}
|
|
if (filters.per_page) params.append('per_page', String(filters.per_page));
|
|
if (filters.page) params.append('page', String(filters.page));
|
|
|
|
const qs = params.toString();
|
|
return apiClient.get<Paginated<Purchase>>(`/admin/purchases${qs ? `?${qs}` : ''}`, token);
|
|
},
|
|
};
|