From a02102345e125b16c3078db96a4e6e422d95bf23 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Wed, 4 Feb 2026 21:28:37 -0800 Subject: [PATCH] fix onedrive --- apps/sim/blocks/blocks/onedrive.ts | 58 ++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/apps/sim/blocks/blocks/onedrive.ts b/apps/sim/blocks/blocks/onedrive.ts index 58c183553..0ff61f0f6 100644 --- a/apps/sim/blocks/blocks/onedrive.ts +++ b/apps/sim/blocks/blocks/onedrive.ts @@ -177,10 +177,10 @@ export const OneDriveBlock: BlockConfig = { condition: { field: 'operation', value: 'create_folder' }, }, { - id: 'folderSelector', + id: 'createFolderParentSelector', title: 'Select Parent Folder', type: 'file-selector', - canonicalParamId: 'folderId', + canonicalParamId: 'createFolderParentId', serviceId: 'onedrive', requiredScopes: [ 'openid', @@ -198,10 +198,10 @@ export const OneDriveBlock: BlockConfig = { }, // Manual Folder ID input (advanced mode) { - id: 'manualFolderId', + id: 'createFolderManualParentId', title: 'Parent Folder ID', type: 'short-input', - canonicalParamId: 'folderId', + canonicalParamId: 'createFolderParentId', placeholder: 'Enter parent folder ID (leave empty for root folder)', dependsOn: ['credential'], mode: 'advanced', @@ -255,10 +255,10 @@ export const OneDriveBlock: BlockConfig = { }, // Download File Fields - File Selector (basic mode) { - id: 'fileSelector', + id: 'downloadFileSelector', title: 'Select File', type: 'file-selector', - canonicalParamId: 'fileId', + canonicalParamId: 'downloadFileId', serviceId: 'onedrive', requiredScopes: [ 'openid', @@ -277,10 +277,10 @@ export const OneDriveBlock: BlockConfig = { }, // Manual File ID input (advanced mode) { - id: 'manualFileId', + id: 'downloadManualFileId', title: 'File ID', type: 'short-input', - canonicalParamId: 'fileId', + canonicalParamId: 'downloadFileId', placeholder: 'Enter file ID', mode: 'advanced', condition: { field: 'operation', value: 'download' }, @@ -356,10 +356,13 @@ export const OneDriveBlock: BlockConfig = { params: (params) => { const { credential, - folderSelector, - manualFolderId, - fileSelector, - manualFileId, + // Folder canonical params (per-operation) + uploadFolderId, + createFolderParentId, + listFolderId, + // File canonical params (per-operation) + downloadFileId, + deleteFileId, mimeType, values, downloadFileName, @@ -376,11 +379,31 @@ export const OneDriveBlock: BlockConfig = { // Normalize file input from both basic (file-upload) and advanced (short-input) modes const normalizedFile = normalizeFileInput(file || fileReference, { single: true }) - // Resolve folder ID from selector (basic) or manual input (advanced) - const resolvedFolderId = folderSelector || manualFolderId || undefined + // Resolve folderId based on operation + let resolvedFolderId: string | undefined + switch (params.operation) { + case 'create_file': + case 'upload': + resolvedFolderId = uploadFolderId?.trim() || undefined + break + case 'create_folder': + resolvedFolderId = createFolderParentId?.trim() || undefined + break + case 'list': + resolvedFolderId = listFolderId?.trim() || undefined + break + } - // Resolve file ID from selector (basic) or manual input (advanced) - const resolvedFileId = fileSelector || manualFileId || undefined + // Resolve fileId based on operation + let resolvedFileId: string | undefined + switch (params.operation) { + case 'download': + resolvedFileId = downloadFileId?.trim() || undefined + break + case 'delete': + resolvedFileId = deleteFileId?.trim() || undefined + break + } return { credential, @@ -402,12 +425,11 @@ export const OneDriveBlock: BlockConfig = { // Upload and Create operation inputs fileName: { type: 'string', description: 'File name' }, file: { type: 'json', description: 'File to upload (UserFile object)' }, - fileReference: { type: 'json', description: 'File reference from previous block' }, content: { type: 'string', description: 'Text content to upload' }, mimeType: { type: 'string', description: 'MIME type of file to create' }, values: { type: 'json', description: 'Cell values for new Excel as JSON' }, // Folder canonical params (per-operation) - uploadFolderId: { type: 'string', description: 'Parent folder for upload/create' }, + uploadFolderId: { type: 'string', description: 'Parent folder for upload/create file' }, createFolderParentId: { type: 'string', description: 'Parent folder for create folder' }, listFolderId: { type: 'string', description: 'Folder to list files from' }, // File canonical params (per-operation)