This commit is contained in:
Iliyan Angelov
2025-11-23 18:59:18 +02:00
parent be07802066
commit 627959f52b
1840 changed files with 236564 additions and 3475 deletions

View File

@@ -101,38 +101,79 @@ export const getInvoices = async (params?: {
page?: number;
limit?: number;
}): Promise<InvoiceResponse> => {
const response = await apiClient.get<InvoiceResponse>('/invoices', { params });
return response.data;
const response = await apiClient.get<any>('/invoices', { params });
const data = response.data;
// Handle both 'status: success' and 'success: true' formats
return {
status: data.status === 'success' || data.success === true ? 'success' : 'error',
data: data.data || {},
message: data.message,
};
};
export const getInvoiceById = async (id: number): Promise<InvoiceResponse> => {
const response = await apiClient.get<InvoiceResponse>(`/invoices/${id}`);
return response.data;
const response = await apiClient.get<any>(`/invoices/${id}`);
const data = response.data;
// Handle both 'status: success' and 'success: true' formats
return {
status: data.status === 'success' || data.success === true ? 'success' : 'error',
data: data.data || {},
message: data.message,
};
};
export const getInvoicesByBooking = async (bookingId: number): Promise<InvoiceResponse> => {
const response = await apiClient.get<InvoiceResponse>(`/invoices/booking/${bookingId}`);
return response.data;
const response = await apiClient.get<any>(`/invoices/booking/${bookingId}`);
const data = response.data;
// Handle both 'status: success' and 'success: true' formats
return {
status: data.status === 'success' || data.success === true ? 'success' : 'error',
data: data.data || {},
message: data.message,
};
};
export const createInvoice = async (data: CreateInvoiceData): Promise<InvoiceResponse> => {
const response = await apiClient.post<InvoiceResponse>('/invoices', data);
return response.data;
const response = await apiClient.post<any>('/invoices', data);
const responseData = response.data;
// Handle both 'status: success' and 'success: true' formats
return {
status: responseData.status === 'success' || responseData.success === true ? 'success' : 'error',
data: responseData.data || {},
message: responseData.message,
};
};
export const updateInvoice = async (id: number, data: UpdateInvoiceData): Promise<InvoiceResponse> => {
const response = await apiClient.put<InvoiceResponse>(`/invoices/${id}`, data);
return response.data;
const response = await apiClient.put<any>(`/invoices/${id}`, data);
const responseData = response.data;
// Handle both 'status: success' and 'success: true' formats
return {
status: responseData.status === 'success' || responseData.success === true ? 'success' : 'error',
data: responseData.data || {},
message: responseData.message,
};
};
export const markInvoiceAsPaid = async (id: number, amount?: number): Promise<InvoiceResponse> => {
const response = await apiClient.post<InvoiceResponse>(`/invoices/${id}/mark-paid`, { amount });
return response.data;
const response = await apiClient.post<any>(`/invoices/${id}/mark-paid`, { amount });
const responseData = response.data;
// Handle both 'status: success' and 'success: true' formats
return {
status: responseData.status === 'success' || responseData.success === true ? 'success' : 'error',
data: responseData.data || {},
message: responseData.message,
};
};
export const deleteInvoice = async (id: number): Promise<{ status: string; message: string }> => {
const response = await apiClient.delete<{ status: string; message: string }>(`/invoices/${id}`);
return response.data;
const response = await apiClient.delete<any>(`/invoices/${id}`);
const data = response.data;
// Handle both 'status: success' and 'success: true' formats
return {
status: data.status === 'success' || data.success === true ? 'success' : 'error',
message: data.message || 'Invoice deleted successfully',
};
};
const invoiceService = {