Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 26x 17x 17x 4x 26x 6x 5x | /**
* User API Service
* Story 1.17: Type-safe API client wrappers for user endpoints
*
* Endpoints:
* - GET /api/v1/users/me?include=roles,preferences
* - PUT /api/v1/users/me/preferences
*/
import apiClient from './apiClient';
import {
UserProfileResponse,
UpdatePreferencesRequest,
UpdatePreferencesResponse,
} from '@/types/user';
/**
* Fetch authenticated user profile with optional includes
* @param includes - Optional fields to include (e.g., ['roles', 'preferences'])
* @returns User profile data
*/
export const getUserProfile = async (includes?: string[]): Promise<UserProfileResponse> => {
const params = includes && includes.length > 0 ? { include: includes.join(',') } : {};
const response = await apiClient.get<UserProfileResponse>('/users/me', { params });
return response.data;
};
/**
* Update user preferences (partial update supported)
* @param preferences - Preferences to update
* @returns Updated preferences
*/
export const updateUserPreferences = async (
preferences: UpdatePreferencesRequest
): Promise<UpdatePreferencesResponse> => {
const response = await apiClient.put<UpdatePreferencesResponse>(
'/users/me/preferences',
preferences
);
return response.data;
};
|