UNPKG

donobu

Version:

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

88 lines 3.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SuitesPersistenceDonobuApi = void 0; const SuiteNotFoundException_1 = require("../../exceptions/SuiteNotFoundException"); const SuiteMetadata_1 = require("../../models/SuiteMetadata"); const DonobuApiClient_1 = require("../DonobuApiClient"); class SuitesPersistenceDonobuApi extends DonobuApiClient_1.DonobuApiClient { constructor(baseUrl, apiKey) { super(baseUrl, apiKey); } async createSuite(suiteMetadata) { const response = await this.jsonRequest('/v1/suites', 'POST', { id: suiteMetadata.id, name: suiteMetadata.name, record: suiteMetadata, }); if (!response.ok) { throw new Error(`Failed to create suite: ${response.status} ${response.statusText}`); } } async updateSuite(suiteMetadata) { const suiteId = encodeURIComponent(suiteMetadata.id); const response = await this.jsonRequest(`/v1/suites/${suiteId}`, 'PUT', { id: suiteMetadata.id, name: suiteMetadata.name, record: suiteMetadata, }); if (response.status === 404) { throw SuiteNotFoundException_1.SuiteNotFoundException.forId(suiteMetadata.id); } if (!response.ok) { throw new Error(`Failed to update suite: ${response.status} ${response.statusText}`); } } async getSuiteById(suiteId) { const response = await this.jsonRequest(`/v1/suites/${encodeURIComponent(suiteId)}`, 'GET'); if (response.status === 404) { throw SuiteNotFoundException_1.SuiteNotFoundException.forId(suiteId); } if (!response.ok) { throw new Error(`Failed to get suite: ${response.status} ${response.statusText}`); } const json = (await response.json()); return SuiteMetadata_1.SuiteMetadataSchema.parse(json.record); } async getSuites(query) { const params = new URLSearchParams(); if (query.name) { params.set('name', query.name); } if (query.partialName) { params.set('partial_name', query.partialName); } if (query.sortBy) { params.set('sort_by', query.sortBy); } if (query.sortOrder) { params.set('sort_order', query.sortOrder); } if (query.limit) { params.set('limit', query.limit.toString()); } if (query.pageToken) { params.set('pageToken', query.pageToken); } const qs = params.toString(); const path = `/v1/suites${qs ? `?${qs}` : ''}`; const response = await this.jsonRequest(path, 'GET'); if (!response.ok) { throw new Error(`Failed to list suites: ${response.status} ${response.statusText}`); } const json = (await response.json()); return { items: json.items.map((item) => SuiteMetadata_1.SuiteMetadataSchema.parse(item)), nextPageToken: json.nextPageToken, }; } async deleteSuite(suiteId) { // The Donobu API sets the suiteId to null for all tests associated with the // suite, via a DB FK constraint. const response = await this.jsonRequest(`/v1/suites/${encodeURIComponent(suiteId)}`, 'DELETE'); if (!response.ok) { throw new Error(`Failed to delete suite: ${response.status} ${response.statusText}`); } } } exports.SuitesPersistenceDonobuApi = SuitesPersistenceDonobuApi; //# sourceMappingURL=SuitesPersistenceDonobuApi.js.map