userSettingService.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // web/services/userSettingService.ts
  2. import { apiClient } from './apiClient';
  3. import { AppSettings } from '../types'; // Frontend AppSettings interface
  4. // Assuming backend returns language, plus id, userId, createdAt, updatedAt
  5. interface UserPersonalSettingResponse {
  6. id: string;
  7. userId: string;
  8. language: string;
  9. createdAt: Date;
  10. updatedAt: Date;
  11. }
  12. interface UserSettingResponse extends AppSettings {
  13. id: string;
  14. userId: string;
  15. createdAt: Date;
  16. updatedAt: Date;
  17. }
  18. export const userSettingService = {
  19. async get(_token: string): Promise<UserSettingResponse> {
  20. const { data } = await apiClient.get<UserSettingResponse>('/v1/admin/settings');
  21. return data;
  22. },
  23. async update(_token: string, settings: Partial<AppSettings>): Promise<UserSettingResponse> {
  24. const { data } = await apiClient.put<UserSettingResponse>('/v1/admin/settings', settings);
  25. return data;
  26. },
  27. async getPersonal(_token: string): Promise<UserPersonalSettingResponse> {
  28. const { data } = await apiClient.get<UserPersonalSettingResponse>('/users/settings');
  29. return data;
  30. },
  31. async updateLanguage(_token: string, language: string): Promise<UserPersonalSettingResponse> {
  32. const { data } = await apiClient.put<UserPersonalSettingResponse>('/users/settings/language', { language });
  33. return data;
  34. },
  35. // Unused legacy methods removed
  36. };