Refactor catalog client to accept entityRef

Signed-off-by: Johan Haals <johan.haals@gmail.com>
This commit is contained in:
Johan Haals
2021-10-05 16:38:20 +02:00
parent 348e6c2d25
commit dccaa059ae
3 changed files with 8 additions and 15 deletions
+2 -7
View File
@@ -20,6 +20,7 @@ import {
Location,
LOCATION_ANNOTATION,
ORIGIN_LOCATION_ANNOTATION,
parseEntityRef,
stringifyEntityRef,
stringifyLocationReference,
} from '@backstage/catalog-model';
@@ -50,13 +51,7 @@ export class CatalogClient implements CatalogApi {
request: CatalogEntityAncestorsRequest,
options?: CatalogRequestOptions,
): Promise<CatalogEntityAncestorsResponse> {
const { kind, namespace, name } = Object.fromEntries(
Object.entries(request.entityRef).map(([k, v]) => [
k,
encodeURIComponent(v),
]),
);
const { kind, namespace, name } = parseEntityRef(request.entityRef);
return await this.requestRequired(
'GET',
`/entities/by-name/${kind}/${namespace}/${name}/ancestry`,
+1 -1
View File
@@ -30,7 +30,7 @@ export type CatalogEntitiesRequest = {
/** @public */
export type CatalogEntityAncestorsRequest = {
entityRef: EntityName;
entityRef: string;
};
/** @public */
@@ -16,8 +16,6 @@
import {
Entity,
EntityName,
getEntityName,
stringifyEntityRef,
UNSTABLE_EntityStatusItem,
compareEntityToRef,
@@ -51,7 +49,7 @@ type GetOwnAndAncestorsErrorsResponse = {
};
async function getOwnAndAncestorsErrors(
entityRef: EntityName,
entityRef: string,
catalogApi: CatalogApi,
): Promise<GetOwnAndAncestorsErrorsResponse> {
const ancestors = await catalogApi.getEntityAncestors({ entityRef });
@@ -78,7 +76,7 @@ export const hasCatalogProcessingErrors = async (
}
const errors = await getOwnAndAncestorsErrors(
getEntityName(entity),
stringifyEntityRef(entity),
catalogApi,
);
return errors.items.length > 0;
@@ -89,11 +87,11 @@ export const hasCatalogProcessingErrors = async (
*/
export const EntityProcessingErrorsPanel = () => {
const { entity } = useEntity();
const entityRef = stringifyEntityRef(entity);
const catalogApi = useApi(catalogApiRef);
const { loading, error, value } = useAsync(async () => {
return getOwnAndAncestorsErrors(getEntityName(entity), catalogApi);
}, [stringifyEntityRef(entity), catalogApi]);
return getOwnAndAncestorsErrors(entityRef, catalogApi);
}, [entityRef, catalogApi]);
if (error) {
return (