|
1 | | -import { apiClient } from '@/lib/api/client'; |
| 1 | +import apiClient from '@/lib/api/client'; |
2 | 2 | import { |
3 | 3 | Asset, |
4 | 4 | AssetDocument, |
@@ -33,135 +33,116 @@ export const assetApiClient = { |
33 | 33 | limit: number; |
34 | 34 | totalPages: number; |
35 | 35 | }> { |
36 | | - const searchParams = new URLSearchParams(); |
37 | | - if (params) { |
38 | | - Object.entries(params).forEach(([key, value]) => { |
39 | | - if (value !== undefined && value !== null) { |
40 | | - searchParams.append(key, String(value)); |
41 | | - } |
42 | | - }); |
43 | | - } |
44 | | - const qs = searchParams.toString(); |
45 | | - return apiClient.request<{ |
46 | | - assets: Asset[]; |
47 | | - total: number; |
48 | | - page: number; |
49 | | - limit: number; |
50 | | - totalPages: number; |
51 | | - }>(`/assets${qs ? `?${qs}` : ''}`); |
| 36 | + return apiClient |
| 37 | + .get<{ |
| 38 | + assets: Asset[]; |
| 39 | + total: number; |
| 40 | + page: number; |
| 41 | + limit: number; |
| 42 | + totalPages: number; |
| 43 | + }>('/assets', { params }) |
| 44 | + .then((res) => res.data); |
52 | 45 | }, |
53 | 46 |
|
54 | 47 | getAsset(id: string): Promise<Asset> { |
55 | | - return apiClient.request<Asset>(`/assets/${id}`); |
| 48 | + return apiClient.get<Asset>(`/assets/${id}`).then((res) => res.data); |
56 | 49 | }, |
57 | 50 |
|
58 | 51 | getAssetHistory(id: string, filters?: AssetHistoryFilters): Promise<AssetHistoryEvent[]> { |
59 | | - const params = new URLSearchParams(); |
60 | | - if (filters) { |
61 | | - Object.entries(filters).forEach(([key, value]) => { |
62 | | - if (value !== undefined && value !== null) { |
63 | | - params.append(key, String(value)); |
64 | | - } |
65 | | - }); |
66 | | - } |
67 | | - const qs = params.toString(); |
68 | | - return apiClient.request<AssetHistoryEvent[]>( |
69 | | - `/assets/${id}/history${qs ? `?${qs}` : ''}` |
70 | | - ); |
| 52 | + return apiClient |
| 53 | + .get<AssetHistoryEvent[]>(`/assets/${id}/history`, { params: filters }) |
| 54 | + .then((res) => res.data); |
71 | 55 | }, |
72 | 56 |
|
73 | 57 | getAssetDocuments(id: string): Promise<AssetDocument[]> { |
74 | | - return apiClient.request<AssetDocument[]>(`/assets/${id}/documents`); |
| 58 | + return apiClient |
| 59 | + .get<AssetDocument[]>(`/assets/${id}/documents`) |
| 60 | + .then((res) => res.data); |
75 | 61 | }, |
76 | 62 |
|
77 | 63 | getMaintenanceRecords(id: string): Promise<MaintenanceRecord[]> { |
78 | | - return apiClient.request<MaintenanceRecord[]>(`/assets/${id}/maintenance`); |
| 64 | + return apiClient |
| 65 | + .get<MaintenanceRecord[]>(`/assets/${id}/maintenance`) |
| 66 | + .then((res) => res.data); |
79 | 67 | }, |
80 | 68 |
|
81 | 69 | getAssetNotes(id: string): Promise<AssetNote[]> { |
82 | | - return apiClient.request<AssetNote[]>(`/assets/${id}/notes`); |
| 70 | + return apiClient.get<AssetNote[]>(`/assets/${id}/notes`).then((res) => res.data); |
83 | 71 | }, |
84 | 72 |
|
85 | 73 | getDepartments(): Promise<DepartmentWithCount[]> { |
86 | | - return apiClient.request<DepartmentWithCount[]>('/departments'); |
| 74 | + return apiClient |
| 75 | + .get<DepartmentWithCount[]>('/departments') |
| 76 | + .then((res) => res.data); |
87 | 77 | }, |
88 | 78 |
|
89 | 79 | createDepartment(data: { name: string; description?: string }): Promise<Department> { |
90 | | - return apiClient.request<Department>('/departments', { |
91 | | - method: 'POST', |
92 | | - body: JSON.stringify(data), |
93 | | - }); |
| 80 | + return apiClient.post<Department>('/departments', data).then((res) => res.data); |
94 | 81 | }, |
95 | 82 |
|
96 | 83 | deleteDepartment(id: string): Promise<void> { |
97 | | - return apiClient.request<void>(`/departments/${id}`, { method: 'DELETE' }); |
| 84 | + return apiClient.delete<void>(`/departments/${id}`).then((res) => res.data); |
98 | 85 | }, |
99 | 86 |
|
100 | 87 | getCategories(): Promise<CategoryWithCount[]> { |
101 | | - return apiClient.request<CategoryWithCount[]>('/categories'); |
| 88 | + return apiClient |
| 89 | + .get<CategoryWithCount[]>('/categories') |
| 90 | + .then((res) => res.data); |
102 | 91 | }, |
103 | 92 |
|
104 | 93 | createCategory(data: { name: string; description?: string }): Promise<Category> { |
105 | | - return apiClient.request<Category>('/categories', { |
106 | | - method: 'POST', |
107 | | - body: JSON.stringify(data), |
108 | | - }); |
| 94 | + return apiClient.post<Category>('/categories', data).then((res) => res.data); |
109 | 95 | }, |
110 | 96 |
|
111 | 97 | deleteCategory(id: string): Promise<void> { |
112 | | - return apiClient.request<void>(`/categories/${id}`, { method: 'DELETE' }); |
| 98 | + return apiClient.delete<void>(`/categories/${id}`).then((res) => res.data); |
113 | 99 | }, |
114 | 100 |
|
115 | 101 | getUsers(): Promise<AssetUser[]> { |
116 | | - return apiClient.request<AssetUser[]>('/users'); |
| 102 | + return apiClient.get<AssetUser[]>('/users').then((res) => res.data); |
117 | 103 | }, |
118 | 104 |
|
119 | 105 | updateAssetStatus(id: string, data: UpdateAssetStatusInput): Promise<Asset> { |
120 | | - return apiClient.request<Asset>(`/assets/${id}/status`, { |
121 | | - method: 'PATCH', |
122 | | - body: JSON.stringify(data), |
123 | | - }); |
| 106 | + return apiClient |
| 107 | + .patch<Asset>(`/assets/${id}/status`, data) |
| 108 | + .then((res) => res.data); |
124 | 109 | }, |
125 | 110 |
|
126 | 111 | transferAsset(id: string, data: TransferAssetInput): Promise<Asset> { |
127 | | - return apiClient.request<Asset>(`/assets/${id}/transfer`, { |
128 | | - method: 'POST', |
129 | | - body: JSON.stringify(data), |
130 | | - }); |
| 112 | + return apiClient.post<Asset>(`/assets/${id}/transfer`, data).then((res) => res.data); |
131 | 113 | }, |
132 | 114 |
|
133 | 115 | deleteAsset(id: string): Promise<void> { |
134 | | - return apiClient.request<void>(`/assets/${id}`, { method: 'DELETE' }); |
| 116 | + return apiClient.delete<void>(`/assets/${id}`).then((res) => res.data); |
135 | 117 | }, |
136 | 118 |
|
137 | 119 | uploadDocument(assetId: string, file: File, name?: string): Promise<AssetDocument> { |
138 | 120 | const form = new FormData(); |
139 | 121 | form.append('file', file); |
140 | 122 | if (name) form.append('name', name); |
141 | | - return apiClient.request<AssetDocument>(`/assets/${assetId}/documents`, { |
142 | | - method: 'POST', |
143 | | - body: form, |
144 | | - headers: {}, |
145 | | - }); |
| 123 | + return apiClient |
| 124 | + .post<AssetDocument>(`/assets/${assetId}/documents`, form) |
| 125 | + .then((res) => res.data); |
146 | 126 | }, |
147 | 127 |
|
148 | 128 | deleteDocument(assetId: string, documentId: string): Promise<void> { |
149 | | - return apiClient.request<void>(`/assets/${assetId}/documents/${documentId}`, { |
150 | | - method: 'DELETE', |
151 | | - }); |
| 129 | + return apiClient |
| 130 | + .delete<void>(`/assets/${assetId}/documents/${documentId}`) |
| 131 | + .then((res) => res.data); |
152 | 132 | }, |
153 | 133 |
|
154 | | - createMaintenanceRecord(assetId: string, data: CreateMaintenanceInput): Promise<MaintenanceRecord> { |
155 | | - return apiClient.request<MaintenanceRecord>(`/assets/${assetId}/maintenance`, { |
156 | | - method: 'POST', |
157 | | - body: JSON.stringify(data), |
158 | | - }); |
| 134 | + createMaintenanceRecord( |
| 135 | + assetId: string, |
| 136 | + data: CreateMaintenanceInput |
| 137 | + ): Promise<MaintenanceRecord> { |
| 138 | + return apiClient |
| 139 | + .post<MaintenanceRecord>(`/assets/${assetId}/maintenance`, data) |
| 140 | + .then((res) => res.data); |
159 | 141 | }, |
160 | 142 |
|
161 | 143 | createNote(assetId: string, data: CreateNoteInput): Promise<AssetNote> { |
162 | | - return apiClient.request<AssetNote>(`/assets/${assetId}/notes`, { |
163 | | - method: 'POST', |
164 | | - body: JSON.stringify(data), |
165 | | - }); |
| 144 | + return apiClient |
| 145 | + .post<AssetNote>(`/assets/${assetId}/notes`, data) |
| 146 | + .then((res) => res.data); |
166 | 147 | }, |
167 | 148 | }; |
0 commit comments