import { defineLogicFunction, type RoutePayload } from "twenty-sdk/define"; import { Response } from "twenty-sdk/logic-function"; import { LIST_TEMPLATES_ROUTE_UNIVERSAL_IDENTIFIER } from "src/constants/universal-identifiers"; import { jsonResponse } from "src/logic-functions/utils/json-response"; import { createSajnApi, SajnApiError } from "src/logic-functions/utils/sajn-api"; import { getSajnConnectionForRequest } from "src/logic-functions/utils/sajn-connection"; const handler = async (event: RoutePayload): Promise => { try { const connection = await getSajnConnectionForRequest(event); const templates = await createSajnApi(connection.accessToken).listTemplates(); return jsonResponse({ templates }); } catch (error) { const status = error instanceof SajnApiError ? error.status : 500; const message = error instanceof Error ? error.message : "Could not load sajn templates."; return jsonResponse({ error: message }, status); } }; export default defineLogicFunction({ universalIdentifier: LIST_TEMPLATES_ROUTE_UNIVERSAL_IDENTIFIER, name: "list-sajn-templates", description: "Lists sajn templates using the current user's OAuth connection.", timeoutSeconds: 15, handler, httpRouteTriggerSettings: { path: "/sajn/templates", httpMethod: "GET", isAuthRequired: true, }, });