From cd77cbd48f487374fbfad985ecdd920b65b35e40 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Mon, 22 Nov 2021 15:20:59 +0000 Subject: [PATCH] permission-backend: clean up PermissionIntegrationClient applyConditions signature Signed-off-by: Mike Lewis --- .../PermissionIntegrationClient.test.ts | 20 ++++++++++++------- .../service/PermissionIntegrationClient.ts | 15 +++++++++----- .../permission-backend/src/service/router.ts | 6 ++++-- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts b/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts index d062bccb33..325ee7c21c 100644 --- a/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts +++ b/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts @@ -71,8 +71,9 @@ describe('PermissionIntegrationClient', () => { }); it('should make a POST request to the correct endpoint', async () => { - await client.applyConditions('testResource1', { + await client.applyConditions({ pluginId: 'test-plugin', + resourceRef: 'testResource1', resourceType: 'test-resource', conditions: mockConditions, }); @@ -81,8 +82,9 @@ describe('PermissionIntegrationClient', () => { }); it('should include a request body', async () => { - await client.applyConditions('testResource1', { + await client.applyConditions({ pluginId: 'test-plugin', + resourceRef: 'testResource1', resourceType: 'test-resource', conditions: mockConditions, }); @@ -101,8 +103,9 @@ describe('PermissionIntegrationClient', () => { }); it('should return the response from the fetch request', async () => { - const response = await client.applyConditions('testResource1', { + const response = await client.applyConditions({ pluginId: 'test-plugin', + resourceRef: 'testResource1', resourceType: 'test-resource', conditions: mockConditions, }); @@ -113,8 +116,9 @@ describe('PermissionIntegrationClient', () => { }); it('should not include authorization headers if no token is supplied', async () => { - await client.applyConditions('testResource1', { + await client.applyConditions({ pluginId: 'test-plugin', + resourceRef: 'testResource1', resourceType: 'test-resource', conditions: mockConditions, }); @@ -125,9 +129,9 @@ describe('PermissionIntegrationClient', () => { it('should include correctly-constructed authorization header if token is supplied', async () => { await client.applyConditions( - 'testResource1', { pluginId: 'test-plugin', + resourceRef: 'testResource1', resourceType: 'test-resource', conditions: mockConditions, }, @@ -146,8 +150,9 @@ describe('PermissionIntegrationClient', () => { ); await expect( - client.applyConditions('testResource1', { + client.applyConditions({ pluginId: 'test-plugin', + resourceRef: 'testResource1', resourceType: 'test-resource', conditions: mockConditions, }), @@ -162,8 +167,9 @@ describe('PermissionIntegrationClient', () => { ); await expect( - client.applyConditions('testResource1', { + client.applyConditions({ pluginId: 'test-plugin', + resourceRef: 'testResource1', resourceType: 'test-resource', conditions: mockConditions, }), diff --git a/plugins/permission-backend/src/service/PermissionIntegrationClient.ts b/plugins/permission-backend/src/service/PermissionIntegrationClient.ts index dd0aad1215..0076edd05f 100644 --- a/plugins/permission-backend/src/service/PermissionIntegrationClient.ts +++ b/plugins/permission-backend/src/service/PermissionIntegrationClient.ts @@ -40,8 +40,13 @@ export class PermissionIntegrationClient { } async applyConditions( - resourceRef: string, - conditions: { + { + pluginId, + resourceRef, + resourceType, + conditions, + }: { + resourceRef: string; pluginId: string; resourceType: string; conditions: PermissionCriteria; @@ -49,13 +54,13 @@ export class PermissionIntegrationClient { authHeader?: string, ): Promise { const endpoint = `${await this.discovery.getBaseUrl( - conditions.pluginId, + pluginId, )}/permissions/apply-conditions`; const request: ApplyConditionsRequest = { resourceRef, - resourceType: conditions.resourceType, - conditions: conditions.conditions, + resourceType, + conditions, }; const response = await fetch(endpoint, { diff --git a/plugins/permission-backend/src/service/router.ts b/plugins/permission-backend/src/service/router.ts index 9110295f77..e5a12c5987 100644 --- a/plugins/permission-backend/src/service/router.ts +++ b/plugins/permission-backend/src/service/router.ts @@ -68,8 +68,10 @@ const handleRequest = async ( return { id, ...(await permissionIntegrationClient.applyConditions( - resourceRef, - response.conditions, + { + resourceRef, + ...response.conditions, + }, authHeader, )), };