2023-03-15 08:35:16 +01:00
|
|
|
import {
|
|
|
|
GoogleSheetsBlock,
|
|
|
|
GoogleSheetsAction,
|
|
|
|
SessionState,
|
|
|
|
} from '@typebot.io/schemas'
|
2022-11-29 10:02:40 +01:00
|
|
|
import { insertRow } from './insertRow'
|
|
|
|
import { updateRow } from './updateRow'
|
2023-03-15 12:21:52 +01:00
|
|
|
import { getRow } from './getRow'
|
|
|
|
import { ExecuteIntegrationResponse } from '@/features/chat/types'
|
2022-11-29 10:02:40 +01:00
|
|
|
|
|
|
|
export const executeGoogleSheetBlock = async (
|
|
|
|
state: SessionState,
|
|
|
|
block: GoogleSheetsBlock
|
|
|
|
): Promise<ExecuteIntegrationResponse> => {
|
2023-03-14 16:42:12 +01:00
|
|
|
const action = block.options.action
|
|
|
|
if (!action) return { outgoingEdgeId: block.outgoingEdgeId }
|
|
|
|
switch (action) {
|
2022-11-29 10:02:40 +01:00
|
|
|
case GoogleSheetsAction.INSERT_ROW:
|
|
|
|
return insertRow(state, {
|
|
|
|
options: block.options,
|
|
|
|
outgoingEdgeId: block.outgoingEdgeId,
|
|
|
|
})
|
|
|
|
case GoogleSheetsAction.UPDATE_ROW:
|
|
|
|
return updateRow(state, {
|
|
|
|
options: block.options,
|
|
|
|
outgoingEdgeId: block.outgoingEdgeId,
|
|
|
|
})
|
|
|
|
case GoogleSheetsAction.GET:
|
|
|
|
return getRow(state, {
|
|
|
|
options: block.options,
|
|
|
|
outgoingEdgeId: block.outgoingEdgeId,
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|