diff --git a/packages/core/src/resources/Users.ts b/packages/core/src/resources/Users.ts index 92d5e2d0..c2e67c84 100644 --- a/packages/core/src/resources/Users.ts +++ b/packages/core/src/resources/Users.ts @@ -156,7 +156,7 @@ export type AllUsersOptions = { export type CreateUserOptions = { admin?: boolean; auditor?: boolean; - avatar?: { content: Blob; filepath?: string }; + avatar?: { content: Blob; filename?: string }; bio?: string; canCreateGroup?: boolean; colorSchemeId?: number; @@ -487,9 +487,16 @@ export class Users extends BaseResource { edit( userId: number, - options?: EditUserOptions & Sudo & ShowExpanded, + { avatar, ...options }: EditUserOptions & Sudo & ShowExpanded = {}, ) { - return RequestHelper.put()(this, endpoint`users/${userId}`, options); + const opts: Record = { + ...options, + isForm: true, + }; + + if (avatar) opts.avatar = [avatar.content, avatar.filename]; + + return RequestHelper.put()(this, endpoint`users/${userId}`, opts); } editStatus( diff --git a/packages/core/test/unit/resources/Users.ts b/packages/core/test/unit/resources/Users.ts index e17910ca..ff110413 100644 --- a/packages/core/test/unit/resources/Users.ts +++ b/packages/core/test/unit/resources/Users.ts @@ -181,7 +181,10 @@ describe('Users.edit', () => { it('should request PUT users/:id', async () => { await service.edit(1, { name: 'Okoye' }); - expect(RequestHelper.put()).toHaveBeenCalledWith(service, 'users/1', { name: 'Okoye' }); + expect(RequestHelper.put()).toHaveBeenCalledWith(service, 'users/1', { + isForm: true, + name: 'Okoye', + }); }); });