Skip to content

Commit d7526c5

Browse files
committed
additional file handling
1 parent bce7d5a commit d7526c5

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

apps/sim/background/webhook-execution.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { getWorkflowById } from '@/lib/workflows/utils'
2424
import { ExecutionSnapshot } from '@/executor/execution/snapshot'
2525
import type { ExecutionMetadata } from '@/executor/execution/types'
2626
import { hasExecutionResult } from '@/executor/utils/errors'
27+
import { getBlock } from '@/blocks'
2728
import { safeAssign } from '@/tools/safe-assign'
2829
import { getTrigger, isTriggerValid } from '@/triggers'
2930

@@ -418,11 +419,23 @@ async function executeWebhookJobInternal(
418419
const rawSelectedTriggerId = triggerBlock?.subBlocks?.selectedTriggerId?.value
419420
const rawTriggerId = triggerBlock?.subBlocks?.triggerId?.value
420421

421-
const resolvedTriggerId = [rawSelectedTriggerId, rawTriggerId].find(
422+
let resolvedTriggerId = [rawSelectedTriggerId, rawTriggerId].find(
422423
(candidate): candidate is string =>
423424
typeof candidate === 'string' && isTriggerValid(candidate)
424425
)
425426

427+
if (!resolvedTriggerId) {
428+
const blockConfig = getBlock(triggerBlock.type)
429+
if (blockConfig?.category === 'triggers' && isTriggerValid(triggerBlock.type)) {
430+
resolvedTriggerId = triggerBlock.type
431+
} else if (triggerBlock.triggerMode && blockConfig?.triggers?.enabled) {
432+
const available = blockConfig.triggers?.available?.[0]
433+
if (available && isTriggerValid(available)) {
434+
resolvedTriggerId = available
435+
}
436+
}
437+
}
438+
426439
if (resolvedTriggerId) {
427440
const triggerConfig = getTrigger(resolvedTriggerId)
428441

apps/sim/lib/webhooks/utils.server.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -544,9 +544,9 @@ const SLACK_MAX_FILES = 10
544544
async function downloadSlackFiles(
545545
rawFiles: any[],
546546
botToken: string
547-
): Promise<Array<{ name: string; data: Buffer; mimeType: string; size: number }>> {
547+
): Promise<Array<{ name: string; data: string; mimeType: string; size: number }>> {
548548
const filesToProcess = rawFiles.slice(0, SLACK_MAX_FILES)
549-
const downloaded: Array<{ name: string; data: Buffer; mimeType: string; size: number }> = []
549+
const downloaded: Array<{ name: string; data: string; mimeType: string; size: number }> = []
550550

551551
for (const file of filesToProcess) {
552552
const urlPrivate = file.url_private as string | undefined
@@ -619,7 +619,7 @@ async function downloadSlackFiles(
619619

620620
downloaded.push({
621621
name: file.name || 'download',
622-
data: buffer,
622+
data: buffer.toString('base64'),
623623
mimeType: file.mimetype || 'application/octet-stream',
624624
size: buffer.length,
625625
})

0 commit comments

Comments
 (0)