generated from pricelees/issue-pr-template
45 lines
1.7 KiB
TypeScript
45 lines
1.7 KiB
TypeScript
import apiClient from '@_api/apiClient';
|
|
import type {
|
|
AdminThemeDetailResponse,
|
|
AdminThemeSummaryListResponse,
|
|
SimpleActiveThemeListResponse,
|
|
ThemeCreateRequest,
|
|
ThemeCreateResponse,
|
|
ThemeIdListResponse,
|
|
ThemeInfoListResponse,
|
|
ThemeInfoResponse,
|
|
ThemeUpdateRequest
|
|
} from './themeTypes';
|
|
|
|
export const fetchAdminThemes = async (): Promise<AdminThemeSummaryListResponse> => {
|
|
return await apiClient.adminGet<AdminThemeSummaryListResponse>('/admin/themes');
|
|
};
|
|
|
|
export const fetchAdminThemeDetail = async (id: string): Promise<AdminThemeDetailResponse> => {
|
|
return await apiClient.adminGet<AdminThemeDetailResponse>(`/admin/themes/${id}`);
|
|
};
|
|
|
|
export const createTheme = async (themeData: ThemeCreateRequest): Promise<ThemeCreateResponse> => {
|
|
return await apiClient.adminPost<ThemeCreateResponse>('/admin/themes', themeData);
|
|
};
|
|
|
|
export const updateTheme = async (id: string, themeData: ThemeUpdateRequest): Promise<void> => {
|
|
await apiClient.adminPatch<any>(`/admin/themes/${id}`, themeData);
|
|
};
|
|
|
|
export const deleteTheme = async (id: string): Promise<void> => {
|
|
await apiClient.adminDel<any>(`/admin/themes/${id}`);
|
|
};
|
|
|
|
export const fetchActiveThemes = async (): Promise<SimpleActiveThemeListResponse> => {
|
|
return await apiClient.adminGet<SimpleActiveThemeListResponse>('/admin/themes/active');
|
|
};
|
|
|
|
export const fetchThemesByIds = async (request: ThemeIdListResponse): Promise<ThemeInfoListResponse> => {
|
|
return await apiClient.post<ThemeInfoListResponse>('/themes/batch', request);
|
|
};
|
|
|
|
export const fetchThemeById = async (id: string): Promise<ThemeInfoResponse> => {
|
|
return await apiClient.get<ThemeInfoResponse>(`/themes/${id}`);
|
|
}
|