create-canvas-area.ts•2.54 kB
/**
* This file was generated. Do NOT edit this file.
*/
import fetch from 'node-fetch'
import { type ZodRawShape, z } from 'zod'
import {
canvasAreas_CanvasAreaLayoutSchema,
canvasAreas_CanvasAreaPositionSchema,
canvasAreas_CanvasAreaTypeSchema,
canvasAreas_CanvasAreaVisibilitySchema,
commons_CanvasAreaIdSchema,
commons_CanvasIdSchema,
} from '../schemas.js'
import type { Tool } from './index.js'
const params = {
canvasId: commons_CanvasIdSchema,
type: canvasAreas_CanvasAreaTypeSchema,
position: canvasAreas_CanvasAreaPositionSchema,
visibility: canvasAreas_CanvasAreaVisibilitySchema.optional(),
layout: canvasAreas_CanvasAreaLayoutSchema.optional(),
overlay: z.unknown().optional(),
config: z.unknown().optional(),
metadata: z.unknown().optional(),
parentId: commons_CanvasAreaIdSchema.optional(),
} as ZodRawShape
export const createCanvasArea: Tool<typeof params> = {
name: 'createCanvasArea',
description: 'Create a canvas area: Creates a new canvas area',
params,
cb: async ({ canvasId, type, position, visibility, layout, overlay, config, metadata, parentId }) => {
try {
const searchParams = {}
const searchParamsString = new URLSearchParams(JSON.parse(JSON.stringify(searchParams))).toString()
const baseUrl = process.env.FLATFILE_API_URL || 'https://platform.flatfile.com/api/v1'
const url = `${baseUrl}/canvas-areas${searchParamsString ? `?${searchParamsString}` : ''}`
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Disable-Hooks': 'true',
Authorization: `Bearer ${process.env.FLATFILE_BEARER_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
canvasId: canvasId,
type: type,
position: position,
visibility: visibility,
layout: layout,
overlay: overlay,
config: config,
metadata: metadata,
parentId: parentId,
}),
})
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status} - ${response.statusText}`)
}
const data = (await response.json()) as { data: unknown }
return {
content: [
{
type: 'text',
text: JSON.stringify(data.data, null, 2),
},
],
status: 'success',
}
} catch (error) {
return {
content: [{ type: 'text', text: `Error: ${error}` }],
status: 'failed',
}
}
},
}