From 56aa06e47ca2c339d3648f795ccd6dbdeb86faf8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Feb 2021 12:00:51 +0100 Subject: [PATCH] catalog-client: rename ApiContext to CatalogRequestOptions + avoid export --- packages/catalog-client/src/CatalogClient.ts | 48 +++++++++++--------- packages/catalog-client/src/index.ts | 1 - packages/catalog-client/src/types.ts | 17 ++++--- 3 files changed, 37 insertions(+), 29 deletions(-) diff --git a/packages/catalog-client/src/CatalogClient.ts b/packages/catalog-client/src/CatalogClient.ts index b0c28bc284..070a8999db 100644 --- a/packages/catalog-client/src/CatalogClient.ts +++ b/packages/catalog-client/src/CatalogClient.ts @@ -24,7 +24,7 @@ import fetch from 'cross-fetch'; import { AddLocationRequest, AddLocationResponse, - ApiContext, + CatalogRequestOptions, CatalogApi, CatalogEntitiesRequest, CatalogListResponse, @@ -40,14 +40,14 @@ export class CatalogClient implements CatalogApi { async getLocationById( id: String, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise { - return await this.getOptional(`/locations/${id}`, context); + return await this.getOptional(`/locations/${id}`, options); } async getEntities( request?: CatalogEntitiesRequest, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise> { const { filter = {}, fields = [] } = request ?? {}; const params: string[] = []; @@ -69,31 +69,31 @@ export class CatalogClient implements CatalogApi { const query = params.length ? `?${params.join('&')}` : ''; const entities: Entity[] = await this.getRequired( `/entities${query}`, - context, + options, ); return { items: entities }; } async getEntityByName( compoundName: EntityName, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise { const { kind, namespace = 'default', name } = compoundName; return this.getOptional( `/entities/by-name/${kind}/${namespace}/${name}`, - context, + options, ); } async addLocation( { type = 'url', target, dryRun }: AddLocationRequest, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise { const headers = { 'Content-Type': 'application/json', } as { [header: string]: string }; - if (context?.token) { - headers.authorization = `Bearer ${context.token}`; + if (options?.token) { + headers.authorization = `Bearer ${options.token}`; } const response = await fetch( `${await this.discoveryApi.getBaseUrl('catalog')}/locations${ @@ -129,24 +129,27 @@ export class CatalogClient implements CatalogApi { async getLocationByEntity( entity: Entity, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise { const locationCompound = entity.metadata.annotations?.[LOCATION_ANNOTATION]; const all: { data: Location }[] = await this.getRequired( '/locations', - context, + options, ); return all .map(r => r.data) .find(l => locationCompound === `${l.type}:${l.target}`); } - async removeEntityByUid(uid: string, context?: ApiContext): Promise { + async removeEntityByUid( + uid: string, + options?: CatalogRequestOptions, + ): Promise { const response = await fetch( `${await this.discoveryApi.getBaseUrl('catalog')}/entities/by-uid/${uid}`, { - headers: context?.token - ? { authorization: `Bearer ${context.token}` } + headers: options?.token + ? { authorization: `Bearer ${options.token}` } : {}, method: 'DELETE', }, @@ -164,11 +167,14 @@ export class CatalogClient implements CatalogApi { // Private methods // - private async getRequired(path: string, context?: ApiContext): Promise { + private async getRequired( + path: string, + options?: CatalogRequestOptions, + ): Promise { const url = `${await this.discoveryApi.getBaseUrl('catalog')}${path}`; const response = await fetch(url, { - headers: context?.token - ? { authorization: `Bearer ${context.token}` } + headers: options?.token + ? { authorization: `Bearer ${options.token}` } : {}, }); @@ -183,12 +189,12 @@ export class CatalogClient implements CatalogApi { private async getOptional( path: string, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise { const url = `${await this.discoveryApi.getBaseUrl('catalog')}${path}`; const response = await fetch(url, { - headers: context?.token - ? { authorization: `Bearer ${context.token}` } + headers: options?.token + ? { authorization: `Bearer ${options.token}` } : {}, }); diff --git a/packages/catalog-client/src/index.ts b/packages/catalog-client/src/index.ts index 11003580a0..c5a626e25b 100644 --- a/packages/catalog-client/src/index.ts +++ b/packages/catalog-client/src/index.ts @@ -18,7 +18,6 @@ export { CatalogClient } from './CatalogClient'; export type { AddLocationRequest, AddLocationResponse, - ApiContext, CatalogApi, CatalogEntitiesRequest, CatalogListResponse, diff --git a/packages/catalog-client/src/types.ts b/packages/catalog-client/src/types.ts index 9a0ec90c16..a36bad9c55 100644 --- a/packages/catalog-client/src/types.ts +++ b/packages/catalog-client/src/types.ts @@ -25,32 +25,35 @@ export type CatalogListResponse = { items: T[]; }; -export type ApiContext = { +export type CatalogRequestOptions = { token?: string; }; export interface CatalogApi { getLocationById( id: String, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise; getEntityByName( name: EntityName, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise; getEntities( request?: CatalogEntitiesRequest, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise>; addLocation( location: AddLocationRequest, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise; getLocationByEntity( entity: Entity, - context?: ApiContext, + options?: CatalogRequestOptions, ): Promise; - removeEntityByUid(uid: string, context?: ApiContext): Promise; + removeEntityByUid( + uid: string, + options?: CatalogRequestOptions, + ): Promise; } export type AddLocationRequest = {