fix user settings API to match rails backend params

This commit is contained in:
Justin Edmund 2025-12-02 08:51:57 -08:00
parent 919eee8cde
commit be92eba4aa
2 changed files with 7 additions and 10 deletions

View file

@ -149,9 +149,10 @@ export class UserAdapter extends BaseAdapter {
* Update user profile
*/
async updateProfile(updates: Partial<UserInfo>): Promise<UserInfo> {
// Wrap updates in 'user' key as required by Rails backend
const result = await this.request<UserInfo>('/users/me', {
method: 'PUT',
body: JSON.stringify(updates)
body: JSON.stringify({ user: updates })
})
// Clear cache for current user after update

View file

@ -26,25 +26,21 @@ export const users = {
* Update user settings
*/
update: async (userId: string, params: UserUpdateParams): Promise<UserResponse> => {
// Transform flat params to nested UserInfo structure
// Pass flat params directly - backend expects flat picture/element fields
const updates: {
picture?: string | undefined
element?: string | undefined
gender?: number | undefined
language?: string | undefined
theme?: string | undefined
avatar?: { picture: string; element: string } | undefined
} = {}
if (params.picture !== undefined) updates.picture = params.picture
if (params.element !== undefined) updates.element = params.element
if (params.gender !== undefined) updates.gender = params.gender
if (params.language !== undefined) updates.language = params.language
if (params.theme !== undefined) updates.theme = params.theme
if (params.picture !== undefined || params.element !== undefined) {
updates.avatar = {
picture: params.picture ?? '',
element: params.element ?? ''
}
}
const result = await userAdapter.updateProfile(updates)
return {
id: result.id,