44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
import type {
|
|
CreateFinancialDisclosureRequest,
|
|
FinancialDisclosureDetailResponse,
|
|
PaginatedFinancialDisclosuresResponse,
|
|
TransitionFinancialDisclosureRequest,
|
|
UpdateFinancialDisclosureRequest,
|
|
} from '@lehuo/contracts';
|
|
import { apiRequest } from './api-client';
|
|
const query = (value: Record<string, string | number | undefined>) => {
|
|
const params = new URLSearchParams();
|
|
Object.entries(value).forEach(
|
|
([key, item]) => item !== undefined && params.set(key, String(item)),
|
|
);
|
|
return params.toString();
|
|
};
|
|
export const fetchFinancialDisclosures = (value: {
|
|
page: number;
|
|
pageSize: number;
|
|
status?: string;
|
|
}) =>
|
|
apiRequest<PaginatedFinancialDisclosuresResponse>(
|
|
`/api/v1/admin/financial-disclosures?${query(value)}`,
|
|
);
|
|
export const fetchFinancialDisclosure = (id: string) =>
|
|
apiRequest<FinancialDisclosureDetailResponse>(`/api/v1/admin/financial-disclosures/${id}`);
|
|
export const createFinancialDisclosure = (input: CreateFinancialDisclosureRequest) =>
|
|
apiRequest<FinancialDisclosureDetailResponse>('/api/v1/admin/financial-disclosures', {
|
|
method: 'POST',
|
|
body: JSON.stringify(input),
|
|
});
|
|
export const updateFinancialDisclosure = (id: string, input: UpdateFinancialDisclosureRequest) =>
|
|
apiRequest<FinancialDisclosureDetailResponse>(`/api/v1/admin/financial-disclosures/${id}`, {
|
|
method: 'PATCH',
|
|
body: JSON.stringify(input),
|
|
});
|
|
export const transitionFinancialDisclosure = (
|
|
id: string,
|
|
input: TransitionFinancialDisclosureRequest,
|
|
) =>
|
|
apiRequest<FinancialDisclosureDetailResponse>(
|
|
`/api/v1/admin/financial-disclosures/${id}/transition`,
|
|
{ method: 'POST', body: JSON.stringify(input) },
|
|
);
|