UNPKG

@red-hat-developer-hub/backstage-plugin-bulk-import

Version:
111 lines (108 loc) 3.95 kB
import { createApiRef } from '@backstage/core-plugin-api'; import { getApi } from '../utils/repository-utils.esm.js'; const bulkImportApiRef = createApiRef({ id: "plugin.bulk-import.service" }); class BulkImportBackendClient { // @ts-ignore configApi; identityApi; constructor(options) { this.configApi = options.configApi; this.identityApi = options.identityApi; } async dataFetcher(page, size, searchString, options) { const { token: idToken } = await this.identityApi.getCredentials(); const backendUrl = this.configApi.getString("backend.baseUrl"); const jsonResponse = await fetch( getApi(backendUrl, page, size, searchString, options), { headers: { "Content-Type": "application/json", ...idToken && { Authorization: `Bearer ${idToken}` } } } ); if (jsonResponse.status !== 200 && jsonResponse.status !== 204) { return jsonResponse; } return jsonResponse.json(); } async getImportJobs(page, size, searchString, sortColumn, sortOrder) { const { token: idToken } = await this.identityApi.getCredentials(); const backendUrl = this.configApi.getString("backend.baseUrl"); const jsonResponse = await fetch( `${backendUrl}/api/bulk-import/imports?page=${page}&size=${size}&search=${searchString}&sortColumn=${sortColumn}&sortOrder=${sortOrder}`, { headers: { "Content-Type": "application/json", ...idToken && { Authorization: `Bearer ${idToken}` }, "api-version": "v2" } } ); if (!jsonResponse.ok) { return jsonResponse; } return jsonResponse.status === 204 ? null : jsonResponse.json(); } async createImportJobs(importRepositories, dryRun) { const { token: idToken } = await this.identityApi.getCredentials(); const backendUrl = this.configApi.getString("backend.baseUrl"); const jsonResponse = await fetch( dryRun ? `${backendUrl}/api/bulk-import/imports?dryRun=true` : `${backendUrl}/api/bulk-import/imports`, { method: "POST", headers: { "Content-Type": "application/json", ...idToken && { Authorization: `Bearer ${idToken}` } }, body: JSON.stringify(importRepositories) } ); if (!jsonResponse.ok) { const errorResponse = await jsonResponse.json(); throw errorResponse; } return jsonResponse.status === 204 ? null : await jsonResponse.json(); } async deleteImportAction(repo, defaultBranch) { const { token: idToken } = await this.identityApi.getCredentials(); const backendUrl = this.configApi.getString("backend.baseUrl"); const jsonResponse = await fetch( `${backendUrl}/api/bulk-import/import/by-repo?repo=${repo}&defaultBranch=${defaultBranch}`, { method: "DELETE", headers: { "Content-Type": "application/json", ...idToken && { Authorization: `Bearer ${idToken}` } } } ); if (!jsonResponse.ok) { const errorResponse = await jsonResponse.json(); throw errorResponse.err; } return jsonResponse.status === 204 ? null : await jsonResponse.json(); } async getImportAction(repo, defaultBranch) { const { token: idToken } = await this.identityApi.getCredentials(); const backendUrl = this.configApi.getString("backend.baseUrl"); const jsonResponse = await fetch( `${backendUrl}/api/bulk-import/import/by-repo?repo=${repo}&defaultBranch=${defaultBranch}`, { method: "GET", headers: { "Content-Type": "application/json", ...idToken && { Authorization: `Bearer ${idToken}` } } } ); if (jsonResponse.status !== 200 && jsonResponse.status !== 204) { return jsonResponse; } return jsonResponse.json(); } } export { BulkImportBackendClient, bulkImportApiRef }; //# sourceMappingURL=BulkImportBackendClient.esm.js.map