catalog-unprocessed-entities: use FetchApi instead of native fetch

Token auth fails if native fetch is used.

Signed-off-by: Niklas Aronsson <niklasar@axis.com>
This commit is contained in:
Niklas Aronsson
2023-06-14 10:53:29 +02:00
parent 0407eca01d
commit 493eab8c57
3 changed files with 16 additions and 6 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-unprocessed-entities': patch
---
Use FetchApi instead of native fetch
@@ -13,7 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { DiscoveryApi, createApiRef } from '@backstage/core-plugin-api';
import {
DiscoveryApi,
createApiRef,
FetchApi,
} from '@backstage/core-plugin-api';
import { ResponseError } from '@backstage/errors';
import { UnprocessedEntity } from '../types';
@@ -35,13 +39,13 @@ export const catalogUnprocessedEntitiesApiRef =
export class CatalogUnprocessedEntitiesApi {
url: string = '';
constructor(public discovery: DiscoveryApi) {}
constructor(public discovery: DiscoveryApi, public fetchApi: FetchApi) {}
private async fetch<T>(path: string, init?: RequestInit): Promise<T> {
if (!this.url) {
this.url = await this.discovery.getBaseUrl('catalog');
}
const resp = await fetch(`${this.url}/${path}`, init);
const resp = await this.fetchApi.fetch(`${this.url}/${path}`, init);
if (!resp.ok) {
throw await ResponseError.fromResponse(resp);
}
@@ -18,6 +18,7 @@ import {
createPlugin,
createRoutableExtension,
discoveryApiRef,
fetchApiRef,
} from '@backstage/core-plugin-api';
import { rootRouteRef } from './routes';
@@ -39,9 +40,9 @@ export const catalogUnprocessedEntitiesPlugin = createPlugin({
apis: [
createApiFactory({
api: catalogUnprocessedEntitiesApiRef,
deps: { discoveryApi: discoveryApiRef },
factory: ({ discoveryApi }) =>
new CatalogUnprocessedEntitiesApi(discoveryApi),
deps: { discoveryApi: discoveryApiRef, fetchApi: fetchApiRef },
factory: ({ discoveryApi, fetchApi }) =>
new CatalogUnprocessedEntitiesApi(discoveryApi, fetchApi),
}),
],
});