UNPKG

donobu

Version:

Create browser automations with an LLM agent and replay them as Playwright scripts.

68 lines 2.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SuitesApi = void 0; const CreateSuite_1 = require("../models/CreateSuite"); const SuiteMetadata_1 = require("../models/SuiteMetadata"); /** * API controller for managing suites. */ class SuitesApi { constructor(suitesManager, testsManager) { this.suitesManager = suitesManager; this.testsManager = testsManager; } /** * GET /api/suites — list suites with optional filtering and pagination. */ async getSuites(req, res) { const query = SuiteMetadata_1.SuitesQuerySchema.parse(req.query); const result = await this.suitesManager.getSuites(query); res.json({ suites: result.items, nextPageToken: result.nextPageToken }); } /** * POST /api/suites — create a new suite. */ async createSuite(req, res) { const params = CreateSuite_1.CreateSuiteSchema.parse(req.body); const suite = await this.suitesManager.createSuite(params); res.json(suite); } /** * GET /api/suites/:suiteId — get a suite by ID. */ async getSuite(req, res) { const suiteId = String(req.params.suiteId); const suite = await this.suitesManager.getSuiteById(suiteId); res.json(suite); } /** * PUT /api/suites/:suiteId — update an existing suite. */ async updateSuite(req, res) { const suiteId = String(req.params.suiteId); const suiteMetadata = SuiteMetadata_1.SuiteMetadataSchema.parse({ ...req.body, id: suiteId, }); await this.suitesManager.updateSuite(suiteMetadata); res.json(suiteMetadata); } /** * DELETE /api/suites/:suiteId — delete a suite (tests are orphaned). */ async deleteSuite(req, res) { const suiteId = String(req.params.suiteId); await this.suitesManager.deleteSuite(suiteId); res.status(200).json({ deleted: true }); } /** * GET /api/suites/:suiteId/tests — list tests in a suite. */ async getSuiteTests(req, res) { const suiteId = String(req.params.suiteId); const result = await this.testsManager.getTests({ suiteId }); res.json({ tests: result.items, nextPageToken: result.nextPageToken }); } } exports.SuitesApi = SuitesApi; //# sourceMappingURL=SuitesApi.js.map