From d6a046b8ad87fe89c8cd6ec4ab1774302deea02a Mon Sep 17 00:00:00 2001 From: Tomi Turtiainen <10324676+tomi@users.noreply.github.com> Date: Wed, 5 Jun 2024 09:35:43 +0300 Subject: [PATCH] refactor: Update typings of `/me/settings` and `/users/:id/settings` endpoints (no-changelog) (#9620) --- packages/cli/src/requests.ts | 2 +- packages/editor-ui/src/api/users.ts | 26 ++++++++++---------- packages/editor-ui/src/stores/users.store.ts | 6 ++--- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/cli/src/requests.ts b/packages/cli/src/requests.ts index 7532d1953e..2f325af09b 100644 --- a/packages/cli/src/requests.ts +++ b/packages/cli/src/requests.ts @@ -47,7 +47,7 @@ export class UserSettingsUpdatePayload { @Expose() @IsBoolean({ message: 'userActivated should be a boolean' }) @IsOptional() - userActivated: boolean; + userActivated?: boolean; @Expose() @IsBoolean({ message: 'allowSSOManualLogin should be a boolean' }) diff --git a/packages/editor-ui/src/api/users.ts b/packages/editor-ui/src/api/users.ts index e1a9daa3c2..0085baadc1 100644 --- a/packages/editor-ui/src/api/users.ts +++ b/packages/editor-ui/src/api/users.ts @@ -5,9 +5,14 @@ import type { IUserResponse, InvitableRoleName, } from '@/Interface'; -import type { IDataObject } from 'n8n-workflow'; +import type { IDataObject, IUserSettings } from 'n8n-workflow'; import { makeRestApiRequest } from '@/utils/apiUtils'; +export interface IUpdateUserSettingsReqPayload { + allowSSOManualLogin?: boolean; + userActivated?: boolean; +} + export async function loginCurrentUser( context: IRestApiContext, ): Promise { @@ -93,27 +98,22 @@ export async function updateCurrentUser( email: string; }, ): Promise { - return await makeRestApiRequest(context, 'PATCH', '/me', params as unknown as IDataObject); + return await makeRestApiRequest(context, 'PATCH', '/me', params); } export async function updateCurrentUserSettings( context: IRestApiContext, - settings: IUserResponse['settings'], -): Promise { - return await makeRestApiRequest(context, 'PATCH', '/me/settings', settings as IDataObject); + settings: IUpdateUserSettingsReqPayload, +): Promise { + return await makeRestApiRequest(context, 'PATCH', '/me/settings', settings); } export async function updateOtherUserSettings( context: IRestApiContext, userId: string, - settings: IUserResponse['settings'], -): Promise { - return await makeRestApiRequest( - context, - 'PATCH', - `/users/${userId}/settings`, - settings as IDataObject, - ); + settings: IUpdateUserSettingsReqPayload, +): Promise { + return await makeRestApiRequest(context, 'PATCH', `/users/${userId}/settings`, settings); } export async function updateCurrentUserPassword( diff --git a/packages/editor-ui/src/stores/users.store.ts b/packages/editor-ui/src/stores/users.store.ts index 22440a7d49..6ca7a12703 100644 --- a/packages/editor-ui/src/stores/users.store.ts +++ b/packages/editor-ui/src/stores/users.store.ts @@ -1,4 +1,4 @@ -import type { UpdateGlobalRolePayload } from '@/api/users'; +import type { IUpdateUserSettingsReqPayload, UpdateGlobalRolePayload } from '@/api/users'; import { changePassword, deleteUser, @@ -246,7 +246,7 @@ export const useUsersStore = defineStore(STORES.USERS, { const user = await updateCurrentUser(rootStore.getRestApiContext, params); this.addUsers([user]); }, - async updateUserSettings(settings: IUserResponse['settings']): Promise { + async updateUserSettings(settings: IUpdateUserSettingsReqPayload): Promise { const rootStore = useRootStore(); const updatedSettings = await updateCurrentUserSettings( rootStore.getRestApiContext, @@ -259,7 +259,7 @@ export const useUsersStore = defineStore(STORES.USERS, { }, async updateOtherUserSettings( userId: string, - settings: IUserResponse['settings'], + settings: IUpdateUserSettingsReqPayload, ): Promise { const rootStore = useRootStore(); const updatedSettings = await updateOtherUserSettings(