UNPKG

@alithya-oss/backstage-plugin-time-saver-backend

Version:

This plugin provides an implementation of charts and statistics related to your time savings that are coming from usage of your templates. Plugins is built from frontend and backend part. Backend plugin is responsible for scheduled stats parsing process a

50 lines (47 loc) 1.51 kB
'use strict'; class ScaffolderClient { constructor(auth, logger, discovery) { this.auth = auth; this.logger = logger; this.discovery = discovery; } async fetchTemplatesFromScaffolder() { const baseUrl = await this.discovery.getBaseUrl("scaffolder"); const scaffolderUri = "/v2/tasks"; const callUrl = `${baseUrl}${scaffolderUri}`; const { token } = await this.auth.getPluginRequestToken({ onBehalfOf: await this.auth.getOwnServiceCredentials(), targetPluginId: "scaffolder" }); let templateTaskList = []; try { const response = await fetch(callUrl, { method: "GET", headers: { Authorization: `Bearer ${token}` } }); const data = await response.json(); this.logger.debug( `Successful call to scaffolder backend. Data:${JSON.stringify(data)}` ); if (Object.hasOwn(data, "error")) { this.logger.error(`Problem retrieving scaffolder tasks`, data.error); return []; } else if (!Object.hasOwn(data, "tasks")) { this.logger.error(`Tasks key not found in scaffolder tasks call`); return []; } templateTaskList = data.tasks; } catch (error) { this.logger.error( `Problem retrieving response from url: ${callUrl}`, error ? error : undefined ); return []; } return templateTaskList; } } exports.ScaffolderClient = ScaffolderClient; //# sourceMappingURL=scaffolderClient.cjs.js.map