Merge pull request #5604 from SDA-SE/feat/scaffolder-no-task

Show error on task page if task does not exist
This commit is contained in:
Fredrik Adelöw
2021-05-06 19:13:15 +02:00
committed by GitHub
3 changed files with 21 additions and 5 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder': patch
---
Show error on task page if task does not exist.
+1
View File
@@ -33,6 +33,7 @@
"@backstage/catalog-client": "^0.3.11",
"@backstage/catalog-model": "^0.7.8",
"@backstage/config": "^0.1.5",
"@backstage/errors": "^0.1.1",
"@backstage/core": "^0.7.8",
"@backstage/integration": "^0.5.2",
"@backstage/integration-react": "^0.1.1",
+15 -5
View File
@@ -22,6 +22,7 @@ import {
IdentityApi,
Observable,
} from '@backstage/core';
import { ResponseError } from '@backstage/errors';
import { ScmIntegrationRegistry } from '@backstage/integration';
import ObservableImpl from 'zen-observable';
import { ListActionsResponse, ScaffolderTask, Status } from './types';
@@ -128,9 +129,7 @@ export class ScaffolderClient implements ScaffolderApi {
});
if (!response.ok) {
throw new Error(
`Failed to fetch template parameter schema, ${await response.text()}`,
);
throw ResponseError.fromResponse(response);
}
const schema: TemplateParameterSchema = await response.json();
@@ -173,9 +172,15 @@ export class ScaffolderClient implements ScaffolderApi {
const token = await this.identityApi.getIdToken();
const baseUrl = await this.discoveryApi.getBaseUrl('scaffolder');
const url = `${baseUrl}/v2/tasks/${encodeURIComponent(taskId)}`;
return fetch(url, {
const response = await fetch(url, {
headers: token ? { Authorization: `Bearer ${token}` } : {},
}).then(x => x.json());
});
if (!response.ok) {
throw ResponseError.fromResponse(response);
}
return await response.json();
}
streamLogs({
@@ -234,6 +239,11 @@ export class ScaffolderClient implements ScaffolderApi {
async listActions(): Promise<ListActionsResponse> {
const baseUrl = await this.discoveryApi.getBaseUrl('scaffolder');
const response = await fetch(`${baseUrl}/v2/actions`);
if (!response.ok) {
throw ResponseError.fromResponse(response);
}
return await response.json();
}
}