UNPKG

ll-callmobile-backend

Version:

VoIP Mobile Communications Backend with Supabase, Drizzle ORM, and Dynamic Querying - Deployable as Cloudflare Worker

81 lines 3.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const hono_1 = require("hono"); const testCaseService_1 = require("../services/testCaseService"); const connection_1 = require("../db/connection"); const app = new hono_1.Hono(); // POST /testcases - Create a new test case app.post('/testcases', async (c) => { try { const body = await c.req.json(); const db = (0, connection_1.createDb)(c.env.DATABASE_URL); // Validate required fields if (!body.description) { return c.json({ error: 'Description is required' }, 400); } if (!body.code || !['CVT', 'CVT2', 'GPP'].includes(body.code)) { return c.json({ error: 'Code is required and must be one of: CVT, CVT2, GPP' }, 400); } if (!body.client || !body.client.acsIdentityId || !body.client.name || !body.client.acsToken) { return c.json({ error: 'Client information is required (acsIdentityId, name, acsToken)' }, 400); } if (!body.vendor || !body.vendor.acsIdentityId || !body.vendor.name || !body.vendor.acsToken) { return c.json({ error: 'Vendor information is required (acsIdentityId, name, acsToken)' }, 400); } const result = await testCaseService_1.TestCaseService.createTestCase(db, body); return c.json(result, 201); } catch (error) { console.error('API Error:', error); if (error instanceof Error) { return c.json({ error: error.message }, 500); } return c.json({ error: 'Internal server error' }, 500); } }); // GET /testcases/:id - Get a test case by ID app.get('/testcases/:id', async (c) => { try { const id = parseInt(c.req.param('id')); const db = (0, connection_1.createDb)(c.env.DATABASE_URL); if (isNaN(id)) { return c.json({ error: 'Invalid test case ID' }, 400); } const testCase = await testCaseService_1.TestCaseService.getTestCaseById(db, id); return c.json(testCase); } catch (error) { console.error('API Error:', error); if (error instanceof Error) { if (error.message.includes('not found')) { return c.json({ error: error.message }, 404); } return c.json({ error: error.message }, 500); } return c.json({ error: 'Internal server error' }, 500); } }); // GET /testcases/:id/client-token - Get client ACS token by test case ID app.get('/testcases/:id/client-token', async (c) => { try { const id = parseInt(c.req.param('id')); const db = (0, connection_1.createDb)(c.env.DATABASE_URL); if (isNaN(id)) { return c.json({ error: 'Invalid test case ID' }, 400); } const acsToken = await testCaseService_1.TestCaseService.getClientACSTokenByTestCaseId(db, id); return c.json({ acsToken }); } catch (error) { console.error('API Error:', error); if (error instanceof Error) { if (error.message.includes('not found')) { return c.json({ error: error.message }, 404); } return c.json({ error: error.message }, 500); } return c.json({ error: 'Internal server error' }, 500); } }); exports.default = app; //# sourceMappingURL=testCases.js.map