permission-backend: clean up PermissionIntegrationClient applyConditions signature

Signed-off-by: Mike Lewis <mtlewis@users.noreply.github.com>
This commit is contained in:
Mike Lewis
2021-11-22 15:20:59 +00:00
parent 6de1e719d4
commit cd77cbd48f
3 changed files with 27 additions and 14 deletions
@@ -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,
}),
@@ -40,8 +40,13 @@ export class PermissionIntegrationClient {
}
async applyConditions(
resourceRef: string,
conditions: {
{
pluginId,
resourceRef,
resourceType,
conditions,
}: {
resourceRef: string;
pluginId: string;
resourceType: string;
conditions: PermissionCriteria<PermissionCondition>;
@@ -49,13 +54,13 @@ export class PermissionIntegrationClient {
authHeader?: string,
): Promise<ApplyConditionsResponse> {
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, {
@@ -68,8 +68,10 @@ const handleRequest = async (
return {
id,
...(await permissionIntegrationClient.applyConditions(
resourceRef,
response.conditions,
{
resourceRef,
...response.conditions,
},
authHeader,
)),
};