fix user settings API to match rails backend params
This commit is contained in:
parent
919eee8cde
commit
be92eba4aa
2 changed files with 7 additions and 10 deletions
|
|
@ -149,9 +149,10 @@ export class UserAdapter extends BaseAdapter {
|
||||||
* Update user profile
|
* Update user profile
|
||||||
*/
|
*/
|
||||||
async updateProfile(updates: Partial<UserInfo>): Promise<UserInfo> {
|
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', {
|
const result = await this.request<UserInfo>('/users/me', {
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
body: JSON.stringify(updates)
|
body: JSON.stringify({ user: updates })
|
||||||
})
|
})
|
||||||
|
|
||||||
// Clear cache for current user after update
|
// Clear cache for current user after update
|
||||||
|
|
|
||||||
|
|
@ -26,25 +26,21 @@ export const users = {
|
||||||
* Update user settings
|
* Update user settings
|
||||||
*/
|
*/
|
||||||
update: async (userId: string, params: UserUpdateParams): Promise<UserResponse> => {
|
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: {
|
const updates: {
|
||||||
|
picture?: string | undefined
|
||||||
|
element?: string | undefined
|
||||||
gender?: number | undefined
|
gender?: number | undefined
|
||||||
language?: string | undefined
|
language?: string | undefined
|
||||||
theme?: 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.gender !== undefined) updates.gender = params.gender
|
||||||
if (params.language !== undefined) updates.language = params.language
|
if (params.language !== undefined) updates.language = params.language
|
||||||
if (params.theme !== undefined) updates.theme = params.theme
|
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)
|
const result = await userAdapter.updateProfile(updates)
|
||||||
return {
|
return {
|
||||||
id: result.id,
|
id: result.id,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue