mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 05:22:02 +00:00
feat(FE-366): create FinanceApiService with dummy data
This commit is contained in:
@@ -0,0 +1,279 @@
|
||||
import { BaseApiService } from '@/services/api/base';
|
||||
import {
|
||||
CreateFinancePayload,
|
||||
Finance,
|
||||
UpdateFinancePayload,
|
||||
} from '@/types/api/finance';
|
||||
|
||||
import { BaseApiResponse } from '@/types/api/api-general';
|
||||
import { httpClientFetcher } from '@/services/http/client';
|
||||
import { sleep } from '@/lib/helper';
|
||||
|
||||
export const dummyFinanceListResponse: BaseApiResponse<Finance[]> = {
|
||||
code: 200,
|
||||
status: 'success',
|
||||
message: 'Finance list fetched successfully',
|
||||
meta: {
|
||||
page: 1,
|
||||
limit: 15,
|
||||
total_pages: 1,
|
||||
total_results: 15,
|
||||
},
|
||||
data: [
|
||||
{
|
||||
id: 1,
|
||||
reference_number: 'FIN-202501-001',
|
||||
transaction_type: 'REVENUE',
|
||||
customer_name: 'PT Sumber Makmur',
|
||||
payment_date: '2025-01-05',
|
||||
created_date: '2025-01-03',
|
||||
payment_method: 'TRANSFER',
|
||||
bank_name: 'BCA',
|
||||
expense_amount: 0,
|
||||
revenue_amount: 5000000,
|
||||
|
||||
created_user: {
|
||||
id: 1,
|
||||
id_user: 101,
|
||||
email: 'admin@example.com',
|
||||
name: 'Admin',
|
||||
},
|
||||
created_at: '2025-01-03T10:00:00Z',
|
||||
updated_at: '2025-01-04T09:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
reference_number: 'FIN-202501-002',
|
||||
transaction_type: 'EXPENSE',
|
||||
customer_name: 'UD Sentosa Farm',
|
||||
payment_date: '2025-01-06',
|
||||
created_date: '2025-01-04',
|
||||
payment_method: 'CASH',
|
||||
bank_name: '-',
|
||||
expense_amount: 1200000,
|
||||
revenue_amount: 0,
|
||||
|
||||
created_user: {
|
||||
id: 2,
|
||||
id_user: 102,
|
||||
email: 'user1@example.com',
|
||||
name: 'Budi Santoso',
|
||||
},
|
||||
created_at: '2025-01-04T08:20:00Z',
|
||||
updated_at: '2025-01-04T08:20:00Z',
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
reference_number: 'FIN-202501-003',
|
||||
transaction_type: 'REVENUE',
|
||||
customer_name: 'PT Golden Egg',
|
||||
payment_date: '2025-01-07',
|
||||
created_date: '2025-01-05',
|
||||
payment_method: 'TRANSFER',
|
||||
bank_name: 'Mandiri',
|
||||
expense_amount: 0,
|
||||
revenue_amount: 7800000,
|
||||
|
||||
created_user: {
|
||||
id: 3,
|
||||
id_user: 103,
|
||||
email: 'user2@example.com',
|
||||
name: 'Clara Wijaya',
|
||||
},
|
||||
created_at: '2025-01-05T07:00:00Z',
|
||||
updated_at: '2025-01-06T15:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
reference_number: 'FIN-202501-004',
|
||||
transaction_type: 'EXPENSE',
|
||||
customer_name: 'PT Logistic Nusantara',
|
||||
payment_date: '2025-01-07',
|
||||
created_date: '2025-01-05',
|
||||
payment_method: 'TRANSFER',
|
||||
bank_name: 'BRI',
|
||||
expense_amount: 950000,
|
||||
revenue_amount: 0,
|
||||
|
||||
created_user: {
|
||||
id: 4,
|
||||
id_user: 104,
|
||||
email: 'user3@example.com',
|
||||
name: 'Dedi Pratama',
|
||||
},
|
||||
created_at: '2025-01-05T09:00:00Z',
|
||||
updated_at: '2025-01-05T09:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
reference_number: 'FIN-202501-005',
|
||||
transaction_type: 'REVENUE',
|
||||
customer_name: 'CV Agro Sentosa',
|
||||
payment_date: '2025-01-08',
|
||||
created_date: '2025-01-06',
|
||||
payment_method: 'TRANSFER',
|
||||
bank_name: 'BCA',
|
||||
expense_amount: 0,
|
||||
revenue_amount: 3200000,
|
||||
|
||||
created_user: {
|
||||
id: 5,
|
||||
id_user: 105,
|
||||
email: 'user4@example.com',
|
||||
name: 'Erika Tan',
|
||||
},
|
||||
created_at: '2025-01-06T10:00:00Z',
|
||||
updated_at: '2025-01-07T11:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
reference_number: 'FIN-202501-006',
|
||||
transaction_type: 'EXPENSE',
|
||||
customer_name: 'PT Pakan Jaya',
|
||||
payment_date: '2025-01-08',
|
||||
created_date: '2025-01-06',
|
||||
payment_method: 'TRANSFER',
|
||||
bank_name: 'BNI',
|
||||
expense_amount: 2300000,
|
||||
revenue_amount: 0,
|
||||
|
||||
created_user: {
|
||||
id: 1,
|
||||
id_user: 101,
|
||||
email: 'admin@example.com',
|
||||
name: 'Admin',
|
||||
},
|
||||
created_at: '2025-01-06T12:00:00Z',
|
||||
updated_at: '2025-01-06T12:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
reference_number: 'FIN-202501-007',
|
||||
transaction_type: 'REVENUE',
|
||||
customer_name: 'PT Telur Sejahtera',
|
||||
payment_date: '2025-01-09',
|
||||
created_date: '2025-01-07',
|
||||
payment_method: 'CASH',
|
||||
bank_name: '-',
|
||||
expense_amount: 0,
|
||||
revenue_amount: 5400000,
|
||||
|
||||
created_user: {
|
||||
id: 2,
|
||||
id_user: 102,
|
||||
email: 'user1@example.com',
|
||||
name: 'Budi Santoso',
|
||||
},
|
||||
created_at: '2025-01-07T11:00:00Z',
|
||||
updated_at: '2025-01-07T11:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
reference_number: 'FIN-202501-008',
|
||||
transaction_type: 'EXPENSE',
|
||||
customer_name: 'CV Transport Mulia',
|
||||
payment_date: '2025-01-09',
|
||||
created_date: '2025-01-07',
|
||||
payment_method: 'TRANSFER',
|
||||
bank_name: 'Mandiri',
|
||||
expense_amount: 750000,
|
||||
revenue_amount: 0,
|
||||
|
||||
created_user: {
|
||||
id: 3,
|
||||
id_user: 103,
|
||||
email: 'user2@example.com',
|
||||
name: 'Clara Wijaya',
|
||||
},
|
||||
created_at: '2025-01-07T14:00:00Z',
|
||||
updated_at: '2025-01-07T14:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
reference_number: 'FIN-202501-009',
|
||||
transaction_type: 'REVENUE',
|
||||
customer_name: 'PT IndoEgg',
|
||||
payment_date: '2025-01-10',
|
||||
created_date: '2025-01-08',
|
||||
payment_method: 'TRANSFER',
|
||||
bank_name: 'BCA',
|
||||
expense_amount: 0,
|
||||
revenue_amount: 4100000,
|
||||
|
||||
created_user: {
|
||||
id: 4,
|
||||
id_user: 104,
|
||||
email: 'user3@example.com',
|
||||
name: 'Dedi Pratama',
|
||||
},
|
||||
created_at: '2025-01-08T08:00:00Z',
|
||||
updated_at: '2025-01-09T16:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 10,
|
||||
reference_number: 'FIN-202501-010',
|
||||
transaction_type: 'EXPENSE',
|
||||
customer_name: 'PT Listrik Jaya',
|
||||
payment_date: '2025-01-10',
|
||||
created_date: '2025-01-08',
|
||||
payment_method: 'TRANSFER',
|
||||
bank_name: 'BRI',
|
||||
expense_amount: 1800000,
|
||||
revenue_amount: 0,
|
||||
|
||||
created_user: {
|
||||
id: 5,
|
||||
id_user: 105,
|
||||
email: 'user4@example.com',
|
||||
name: 'Erika Tan',
|
||||
},
|
||||
created_at: '2025-01-08T09:00:00Z',
|
||||
updated_at: '2025-01-08T09:00:00Z',
|
||||
},
|
||||
|
||||
// Remaining 5 items for total 15:
|
||||
...Array.from({ length: 5 }).map((_, i) => {
|
||||
const idx = i + 11;
|
||||
return {
|
||||
id: idx,
|
||||
reference_number: `FIN-202501-${String(idx).padStart(3, '0')}`,
|
||||
transaction_type: idx % 2 === 0 ? 'EXPENSE' : 'REVENUE',
|
||||
customer_name: `Customer ${idx}`,
|
||||
payment_date: `2025-01-${10 + i}`,
|
||||
created_date: `2025-01-${9 + i}`,
|
||||
payment_method: idx % 2 === 0 ? 'TRANSFER' : 'CASH',
|
||||
bank_name: idx % 2 === 0 ? 'Mandiri' : '-',
|
||||
expense_amount: idx % 2 === 0 ? 1000000 + i * 150000 : 0,
|
||||
revenue_amount: idx % 2 !== 0 ? 3000000 + i * 200000 : 0,
|
||||
|
||||
created_user: {
|
||||
id: idx % 5,
|
||||
id_user: 100 + (idx % 5),
|
||||
email: `user${idx % 5}@example.com`,
|
||||
name: `User ${idx % 5}`,
|
||||
},
|
||||
created_at: `2025-01-${9 + i}T10:00:00Z`,
|
||||
updated_at: `2025-01-${9 + i}T12:00:00Z`,
|
||||
};
|
||||
}),
|
||||
],
|
||||
};
|
||||
|
||||
export class FinanceApiService extends BaseApiService<
|
||||
Finance,
|
||||
CreateFinancePayload,
|
||||
UpdateFinancePayload
|
||||
> {
|
||||
constructor(basePath: string) {
|
||||
super(basePath);
|
||||
}
|
||||
|
||||
async getAllFetcher(endpoint: string): Promise<BaseApiResponse<Finance[]>> {
|
||||
// return await httpClientFetcher<BaseApiResponse<Finance[]>>(endpoint);
|
||||
await sleep(1000);
|
||||
|
||||
return dummyFinanceListResponse;
|
||||
}
|
||||
}
|
||||
|
||||
export const FinanceApi = new FinanceApiService('/finance');
|
||||
Reference in New Issue
Block a user