UNPKG

acp-handler

Version:

Vercel handler for Agentic Commerce Protocol (ACP) - Build checkout APIs that AI agents like ChatGPT can use to complete purchases

52 lines (50 loc) 1.71 kB
import { CompleteCheckoutSessionSchema, CreateCheckoutSessionSchema, UpdateCheckoutSessionSchema, parseJSON, specError, validateBody } from "../schema-dfYBxw9A.js"; //#region src/next/index.ts function handler(fn) { return async (req) => fn(req); } function createNextCatchAll(H, S) { const Schemas = S ?? { create: CreateCheckoutSessionSchema, update: UpdateCheckoutSessionSchema, complete: CompleteCheckoutSessionSchema }; async function GET(req, { params }) { const seg = (await params).segments ?? []; if (seg.length === 1) return H.get(req, seg[0]); return specError("not_found", "Route not found", void 0, 404); } async function POST(req, { params }) { const seg = (await params).segments ?? []; if (seg.length === 0) { const parsed = await parseJSON(req); if (!parsed.ok) return parsed.res; const v = validateBody(Schemas.create, parsed.body); if (!v.ok) return v.res; return H.create(req, v.data); } if (seg.length === 1) { const parsed = await parseJSON(req); if (!parsed.ok) return parsed.res; const v = validateBody(Schemas.update, parsed.body); if (!v.ok) return v.res; return H.update(req, seg[0], v.data); } if (seg.length === 2 && seg[1] === "complete") { const parsed = await parseJSON(req); if (!parsed.ok) return parsed.res; const v = validateBody(Schemas.complete, parsed.body); if (!v.ok) return v.res; return H.complete(req, seg[0], v.data); } if (seg.length === 2 && seg[1] === "cancel") return H.cancel(req, seg[0]); return specError("not_found", "Route not found", void 0, 404); } return { GET, POST }; } //#endregion export { createNextCatchAll, handler }; //# sourceMappingURL=index.js.map