From 7d9479ac0992c3ebd885ec6a4fbe7bddcf534f86 Mon Sep 17 00:00:00 2001 From: Fouad Matin Date: Mon, 11 Mar 2024 16:52:09 -0700 Subject: [PATCH] fix(supabase): fallback_role_id --- .../indent-integration-supabase/src/index.ts | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/packages/beta/indent-integration-supabase/src/index.ts b/packages/beta/indent-integration-supabase/src/index.ts index 4d384fd..acbda52 100644 --- a/packages/beta/indent-integration-supabase/src/index.ts +++ b/packages/beta/indent-integration-supabase/src/index.ts @@ -163,14 +163,31 @@ export class SupabaseIntegration delete res.status.message } } else { - // Remove member from organization - await this.FetchSupabase({ - method: 'DELETE', - url: `/v0/organizations/${SUPABASE_ORG_ID}/members/${existingMember.gotrue_id}`, - }) - console.log('removed from organization') - res.status.code = StatusCode.OK - delete res.status.message + if (resource.labels?.['fallback_role_id']) { + // If there's a fallback role, update the member to that role + await this.FetchSupabase({ + method: 'PATCH', + url: `/v0/organizations/${SUPABASE_ORG_ID}/members/${existingMember.gotrue_id}`, + data: { + role_id: parseInt(resource.labels['fallback_role_id'], 10), + }, + }) + console.log( + 'updated role to fallback role', + resource.labels['fallback_role_id'] + ) + res.status.code = StatusCode.OK + delete res.status.message + } else { + // Remove member from organization + await this.FetchSupabase({ + method: 'DELETE', + url: `/v0/organizations/${SUPABASE_ORG_ID}/members/${existingMember.gotrue_id}`, + }) + console.log('removed from organization') + res.status.code = StatusCode.OK + delete res.status.message + } } } } catch (err) {