add register button, addLocation api

Co-authored-by: Nikita Dudnik <nikdudnik@gmail.com>
Co-authored-by: Ben Lambert <ben@blam.sh>
This commit is contained in:
Ivan Shmidt
2020-05-29 14:48:12 +02:00
parent 827a6289e6
commit cef8abb5c4
4 changed files with 37 additions and 10 deletions
+17
View File
@@ -16,6 +16,7 @@
import { CatalogApi } from './types';
import { DescriptorEnvelope } from '../types';
import {} from '@backstage/catalog-model';
export class CatalogClient implements CatalogApi {
private apiOrigin: string;
@@ -42,4 +43,20 @@ export class CatalogClient implements CatalogApi {
if (entity) return entity;
throw new Error(`'Entity not found: ${name}`);
}
async addLocation(type: string, target: string): Promise<{}> {
const response = await fetch(
`${this.apiOrigin}${this.basePath}/locations`,
{
headers: {
'Content-Type': 'application/json',
},
method: 'POST',
body: JSON.stringify({ type, target }),
},
);
const location = await response.json();
if (location) return location;
throw new Error(`'Location wasn't added: ${target}`);
}
}
@@ -24,7 +24,8 @@ import {
Page,
pageTheme,
} from '@backstage/core';
import { Typography, Link } from '@material-ui/core';
import { Typography, Link, Button } from '@material-ui/core';
import { Link as RouterLink } from 'react-router-dom';
// TODO(blam): Connect to backend
const STATIC_DATA = [
@@ -49,7 +50,16 @@ const ScaffolderPage: React.FC<{}> = () => {
subtitle="Create new software components using standard templates"
/>
<Content>
<ContentHeader title="Available templates" />
<ContentHeader title="Available templates">
<Button
variant="contained"
color="primary"
component={RouterLink}
to="/register-component"
>
Register existing entity
</Button>
</ContentHeader>
<Typography variant="body2" paragraph style={{ fontStyle: 'italic' }}>
<strong>NOTE!</strong> This feature is WIP. You can follow progress{' '}
<Link href="https://github.com/spotify/backstage/milestone/11">