theme.ts 942 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import axios from 'axios';
  2. import type { ThemeSettings } from '../../share/types.ts';
  3. const API_BASE_URL = '/api';
  4. export interface ThemeSettingsResponse {
  5. message: string;
  6. data: ThemeSettings;
  7. }
  8. export const ThemeAPI = {
  9. getThemeSettings: async (): Promise<ThemeSettings> => {
  10. try {
  11. const response = await axios.get(`${API_BASE_URL}/theme`);
  12. return response.data.data;
  13. } catch (error) {
  14. throw error;
  15. }
  16. },
  17. updateThemeSettings: async (themeData: Partial<ThemeSettings>): Promise<ThemeSettings> => {
  18. try {
  19. const response = await axios.put(`${API_BASE_URL}/theme`, themeData);
  20. return response.data.data;
  21. } catch (error) {
  22. throw error;
  23. }
  24. },
  25. resetThemeSettings: async (): Promise<ThemeSettings> => {
  26. try {
  27. const response = await axios.post(`${API_BASE_URL}/theme/reset`);
  28. return response.data.data;
  29. } catch (error) {
  30. throw error;
  31. }
  32. }
  33. };