From 23833adddf40aa2da746827dfac5ef4088f16f24 Mon Sep 17 00:00:00 2001 From: panteliselef Date: Mon, 4 Dec 2023 13:31:52 +0200 Subject: [PATCH] Revert "feat(backend): Introduce OrganizationRoleAPI (#2177)" This reverts commit b3a3dcdf --- .changeset/cold-comics-serve.md | 5 - .../src/api/endpoints/OrganizationRoleApi.ts | 138 ------------------ packages/backend/src/api/endpoints/index.ts | 1 - packages/backend/src/api/factory.ts | 2 - packages/backend/src/api/resources/JSON.ts | 11 -- packages/backend/src/api/resources/Role.ts | 26 ---- packages/backend/src/api/resources/index.ts | 1 - packages/backend/src/exports.test.ts | 1 - .../__snapshots__/exports.test.ts.snap | 1 - .../__snapshots__/exports.test.ts.snap | 2 - packages/sdk-node/src/index.ts | 2 - 11 files changed, 190 deletions(-) delete mode 100644 .changeset/cold-comics-serve.md delete mode 100644 packages/backend/src/api/resources/Role.ts diff --git a/.changeset/cold-comics-serve.md b/.changeset/cold-comics-serve.md deleted file mode 100644 index 9a81d8d480..0000000000 --- a/.changeset/cold-comics-serve.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@clerk/backend': patch ---- - -Add OrganizationRoleAPI for CRUD operations regarding instance level organization roles. diff --git a/packages/backend/src/api/endpoints/OrganizationRoleApi.ts b/packages/backend/src/api/endpoints/OrganizationRoleApi.ts index c320e2f2e8..e69de29bb2 100644 --- a/packages/backend/src/api/endpoints/OrganizationRoleApi.ts +++ b/packages/backend/src/api/endpoints/OrganizationRoleApi.ts @@ -1,138 +0,0 @@ -import type { ClerkPaginationRequest } from '@clerk/types'; - -import { joinPaths } from '../../util/path'; -import type { DeletedObject, Role } from '../resources'; -import { AbstractAPI } from './AbstractApi'; - -const basePath = '/organizations_roles'; - -type GetRoleListParams = ClerkPaginationRequest<{ - query?: string; - order_by?: string; -}>; - -type CreateParams = { - /** - * A name of a role in a readable friendly format. - * F.e. `Teacher` or `Administrator` - */ - name: string; - - /** - * A unique identifier that represents the role. - * F.e. `org:administrator` - */ - key: string; - - /** - * A brief description of what the role represents or its intended use. - */ - description: string; - - /** - * An array of permission ids that will be assigned to this role. - */ - permissions: string[]; -}; - -type GetOrganizationRoleParams = { roleId: string }; - -type UpdateParams = { - /** - * A name of a role in a readable friendly format. - * F.e. `Teacher` or `Administrator` - * Passing undefined has no effect to the existing value. - */ - name?: string; - - /** - * A unique identifier that represents the role. - * F.e. `org:administrator` - * Passing undefined has no effect to the existing value. - */ - key?: string; - - /** - * A brief description of what the role represents or its intended use. - * Passing undefined has no effect to the existing value. - */ - description?: string; - - /** - * An array of permission ids that will be assigned to this role. - * Passing undefined has no effect to the permission that already exist. - * Passing an empty array will override the existing permissions. - */ - permissions?: string[]; -}; - -type RemovePermissionParams = { - permissionId: string; - roleId: string; -}; - -type AssignPermissionParams = RemovePermissionParams; - -export class OrganizationRoleAPI extends AbstractAPI { - public async getOrganizationRoleList(params?: GetRoleListParams) { - return this.request({ - method: 'GET', - path: basePath, - queryParams: params, - }); - } - - public async createOrganizationRole(params: CreateParams) { - return this.request({ - method: 'POST', - path: basePath, - bodyParams: params, - }); - } - - public async getOrganizationRole(params: GetOrganizationRoleParams) { - this.requireId(params.roleId); - - return this.request({ - method: 'GET', - path: joinPaths(basePath, params.roleId), - }); - } - - public async updateOrganizationRole(roleId: string, params: UpdateParams) { - this.requireId(roleId); - return this.request({ - method: 'PATCH', - path: joinPaths(basePath, roleId), - bodyParams: params, - }); - } - - public async deleteOrganizationRole(roleId: string) { - this.requireId(roleId); - return this.request({ - method: 'DELETE', - path: joinPaths(basePath, roleId), - }); - } - - public async assignPermissionToRole(params: AssignPermissionParams) { - const { roleId, permissionId } = params; - this.requireId(roleId); - this.requireId(permissionId); - return this.request({ - method: 'POST', - path: joinPaths(basePath, roleId, 'permission', permissionId), - }); - } - - public async removePermissionFromRole(params: RemovePermissionParams) { - const { roleId, permissionId } = params; - this.requireId(roleId); - this.requireId(permissionId); - return this.request({ - method: 'DELETE', - path: joinPaths(basePath, roleId, 'permission', permissionId), - }); - } -} diff --git a/packages/backend/src/api/endpoints/index.ts b/packages/backend/src/api/endpoints/index.ts index b0098db07c..4e377f290e 100644 --- a/packages/backend/src/api/endpoints/index.ts +++ b/packages/backend/src/api/endpoints/index.ts @@ -7,7 +7,6 @@ export * from './EmailApi'; export * from './InterstitialApi'; export * from './InvitationApi'; export * from './OrganizationApi'; -export * from './OrganizationRoleApi'; export * from './OrganizationPermissionApi'; export * from './PhoneNumberApi'; export * from './RedirectUrlApi'; diff --git a/packages/backend/src/api/factory.ts b/packages/backend/src/api/factory.ts index 4da11471a5..a503ffc236 100644 --- a/packages/backend/src/api/factory.ts +++ b/packages/backend/src/api/factory.ts @@ -8,7 +8,6 @@ import { InvitationAPI, OrganizationAPI, OrganizationPermissionAPI, - OrganizationRoleAPI, PhoneNumberAPI, RedirectUrlAPI, SessionAPI, @@ -31,7 +30,6 @@ export function createBackendApiClient(options: CreateBackendApiOptions) { interstitial: new InterstitialAPI(request), invitations: new InvitationAPI(request), organizations: new OrganizationAPI(request), - organizationRoles: new OrganizationRoleAPI(request), organizationPermissions: new OrganizationPermissionAPI(request), phoneNumbers: new PhoneNumberAPI(request), redirectUrls: new RedirectUrlAPI(request), diff --git a/packages/backend/src/api/resources/JSON.ts b/packages/backend/src/api/resources/JSON.ts index 78c27c0b25..d8265cda62 100644 --- a/packages/backend/src/api/resources/JSON.ts +++ b/packages/backend/src/api/resources/JSON.ts @@ -21,7 +21,6 @@ export enum ObjectType { Organization = 'organization', OrganizationInvitation = 'organization_invitation', OrganizationMembership = 'organization_membership', - Role = 'role', Permission = 'permission', PhoneNumber = 'phone_number', RedirectUrl = 'redirect_url', @@ -175,16 +174,6 @@ export interface OrganizationMembershipPublicUserDataJSON { user_id: string; } -export interface RoleJSON extends ClerkResourceJSON { - object: ObjectType.Role; - name: string; - key: string; - description: string; - permissions: PermissionJSON[]; - created_at: number; - updated_at: number; -} - export interface PermissionJSON extends ClerkResourceJSON { object: ObjectType.Permission; id: string; diff --git a/packages/backend/src/api/resources/Role.ts b/packages/backend/src/api/resources/Role.ts deleted file mode 100644 index cd26153146..0000000000 --- a/packages/backend/src/api/resources/Role.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { RoleJSON } from './JSON'; -import { Permission } from './Permission'; - -export class Role { - constructor( - readonly id: string, - readonly name: string, - readonly key: string, - readonly description: string, - readonly permissions: Permission[] = [], - readonly createdAt: number, - readonly updatedAt: number, - ) {} - - static fromJSON(data: RoleJSON): Role { - return new Role( - data.id, - data.name, - data.key, - data.description, - (data.permissions || []).map(x => Permission.fromJSON(x)), - data.created_at, - data.updated_at, - ); - } -} diff --git a/packages/backend/src/api/resources/index.ts b/packages/backend/src/api/resources/index.ts index 6c95ba9cb3..14d0367f98 100644 --- a/packages/backend/src/api/resources/index.ts +++ b/packages/backend/src/api/resources/index.ts @@ -22,7 +22,6 @@ export * from './Invitation'; export * from './JSON'; export * from './OauthAccessToken'; export * from './Organization'; -export * from './Role'; export * from './Permission'; export * from './OrganizationInvitation'; export * from './OrganizationMembership'; diff --git a/packages/backend/src/exports.test.ts b/packages/backend/src/exports.test.ts index ad6c9f415e..8ad994591b 100644 --- a/packages/backend/src/exports.test.ts +++ b/packages/backend/src/exports.test.ts @@ -27,7 +27,6 @@ export default (QUnit: QUnit) => { 'Permission', 'PhoneNumber', 'RedirectUrl', - 'Role', 'SMSMessage', 'Session', 'SignInToken', diff --git a/packages/nextjs/src/server/__tests__/__snapshots__/exports.test.ts.snap b/packages/nextjs/src/server/__tests__/__snapshots__/exports.test.ts.snap index fb222287d8..03027bdabb 100644 --- a/packages/nextjs/src/server/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/nextjs/src/server/__tests__/__snapshots__/exports.test.ts.snap @@ -21,7 +21,6 @@ exports[`/server public exports should not include a breaking change 1`] = ` "Permission", "PhoneNumber", "RedirectUrl", - "Role", "SMSMessage", "Session", "SignInToken", diff --git a/packages/sdk-node/src/__tests__/__snapshots__/exports.test.ts.snap b/packages/sdk-node/src/__tests__/__snapshots__/exports.test.ts.snap index b75a67f8cc..2db4328b5f 100644 --- a/packages/sdk-node/src/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/sdk-node/src/__tests__/__snapshots__/exports.test.ts.snap @@ -23,7 +23,6 @@ exports[`module exports should not change unless explicitly set 1`] = ` "Permission", "PhoneNumber", "RedirectUrl", - "Role", "SMSMessage", "Session", "SignInToken", @@ -55,7 +54,6 @@ exports[`module exports should not change unless explicitly set 1`] = ` "loadInterstitialFromLocal", "makeAuthObjectSerializable", "organizationPermissions", - "organizationRoles", "organizations", "phoneNumbers", "prunePrivateMetadata", diff --git a/packages/sdk-node/src/index.ts b/packages/sdk-node/src/index.ts index b39c85567e..d7ed849ec6 100644 --- a/packages/sdk-node/src/index.ts +++ b/packages/sdk-node/src/index.ts @@ -28,7 +28,6 @@ const { emails, invitations, organizations, - organizationRoles, organizationPermissions, clients, allowlistIdentifiers, @@ -43,7 +42,6 @@ export { emails, invitations, organizations, - organizationRoles, organizationPermissions, phoneNumbers, sessions,