Vehicle ETL Process fixed. Admin settings fixed.
This commit is contained in:
@@ -27,6 +27,10 @@ import {
|
||||
StationOverview,
|
||||
CreateStationRequest,
|
||||
UpdateStationRequest,
|
||||
CatalogSearchResponse,
|
||||
ImportPreviewResult,
|
||||
ImportApplyResult,
|
||||
CascadeDeleteResult,
|
||||
} from '../types/admin.types';
|
||||
|
||||
export interface AuditLogsResponse {
|
||||
@@ -194,4 +198,73 @@ export const adminApi = {
|
||||
deleteStation: async (id: string): Promise<void> => {
|
||||
await apiClient.delete(`/admin/stations/${id}`);
|
||||
},
|
||||
|
||||
// Catalog Search
|
||||
searchCatalog: async (
|
||||
query: string,
|
||||
page: number = 1,
|
||||
pageSize: number = 50
|
||||
): Promise<CatalogSearchResponse> => {
|
||||
const response = await apiClient.get<CatalogSearchResponse>('/admin/catalog/search', {
|
||||
params: { q: query, page, pageSize },
|
||||
});
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// Catalog Import/Export
|
||||
importPreview: async (file: File): Promise<ImportPreviewResult> => {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
const response = await apiClient.post<ImportPreviewResult>(
|
||||
'/admin/catalog/import/preview',
|
||||
formData,
|
||||
{
|
||||
headers: { 'Content-Type': 'multipart/form-data' },
|
||||
}
|
||||
);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
importApply: async (previewId: string): Promise<ImportApplyResult> => {
|
||||
const response = await apiClient.post<ImportApplyResult>('/admin/catalog/import/apply', {
|
||||
previewId,
|
||||
});
|
||||
return response.data;
|
||||
},
|
||||
|
||||
exportCatalog: async (): Promise<Blob> => {
|
||||
const response = await apiClient.get('/admin/catalog/export', {
|
||||
responseType: 'blob',
|
||||
});
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// Cascade Delete
|
||||
deleteMakeCascade: async (id: string): Promise<CascadeDeleteResult> => {
|
||||
const response = await apiClient.delete<CascadeDeleteResult>(
|
||||
`/admin/catalog/makes/${id}/cascade`
|
||||
);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
deleteModelCascade: async (id: string): Promise<CascadeDeleteResult> => {
|
||||
const response = await apiClient.delete<CascadeDeleteResult>(
|
||||
`/admin/catalog/models/${id}/cascade`
|
||||
);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
deleteYearCascade: async (id: string): Promise<CascadeDeleteResult> => {
|
||||
const response = await apiClient.delete<CascadeDeleteResult>(
|
||||
`/admin/catalog/years/${id}/cascade`
|
||||
);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
deleteTrimCascade: async (id: string): Promise<CascadeDeleteResult> => {
|
||||
const response = await apiClient.delete<CascadeDeleteResult>(
|
||||
`/admin/catalog/trims/${id}/cascade`
|
||||
);
|
||||
return response.data;
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user