feat(workspaces): user workspace join requests (#4023)
* feat(workspaces): user workspace join requests * chore(workspaces): return limited workspace * chore(workspaces): fix tests * chore(workspaces): add index for userId * chore(shared): fix totalcount on getpaginateditems * chore(workspaces): add workspace core resolvers to throw specific error
This commit is contained in:
committed by
GitHub
parent
eb050bb649
commit
fd68c6ef2a
@@ -0,0 +1,47 @@
|
||||
import { WorkspacesModuleDisabledError } from '@/modules/core/errors/workspaces'
|
||||
import { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
|
||||
|
||||
const { FF_WORKSPACES_MODULE_ENABLED } = getFeatureFlags()
|
||||
|
||||
export default !FF_WORKSPACES_MODULE_ENABLED
|
||||
? ({
|
||||
Workspace: {
|
||||
adminWorkspacesJoinRequests: async () => {
|
||||
throw new WorkspacesModuleDisabledError()
|
||||
}
|
||||
},
|
||||
WorkspaceJoinRequest: {
|
||||
id: async () => {
|
||||
throw new WorkspacesModuleDisabledError()
|
||||
},
|
||||
user: async () => {
|
||||
throw new WorkspacesModuleDisabledError()
|
||||
},
|
||||
workspace: async () => {
|
||||
throw new WorkspacesModuleDisabledError()
|
||||
}
|
||||
},
|
||||
LimitedWorkspaceJoinRequest: {
|
||||
id: async () => {
|
||||
throw new WorkspacesModuleDisabledError()
|
||||
},
|
||||
user: async () => {
|
||||
throw new WorkspacesModuleDisabledError()
|
||||
},
|
||||
workspace: async () => {
|
||||
throw new WorkspacesModuleDisabledError()
|
||||
}
|
||||
},
|
||||
User: {
|
||||
workspaceJoinRequests: async () => {
|
||||
throw new WorkspacesModuleDisabledError()
|
||||
}
|
||||
},
|
||||
Mutation: {
|
||||
workspaceJoinRequestMutations: () => {
|
||||
throw new WorkspacesModuleDisabledError()
|
||||
}
|
||||
}
|
||||
} as Resolvers)
|
||||
: {}
|
||||
@@ -7,6 +7,7 @@ import { WorkspaceRoles } from '@speckle/shared'
|
||||
|
||||
export type WorkspaceGraphQLReturn = Workspace
|
||||
export type WorkspaceJoinRequestGraphQLReturn = WorkspaceJoinRequest
|
||||
export type LimitedWorkspaceJoinRequestGraphQLReturn = WorkspaceJoinRequest
|
||||
export type WorkspaceBillingGraphQLReturn = { parent: Workspace }
|
||||
export type WorkspaceSsoGraphQLReturn = WorkspaceSsoProviderRecord
|
||||
export type WorkspaceMutationsGraphQLReturn = MutationsObjectGraphQLReturn
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
import { Knex } from 'knex'
|
||||
|
||||
const WORKSPACE_JOIN_REQUESTS_TABLE = 'workspace_join_requests'
|
||||
|
||||
export async function up(knex: Knex): Promise<void> {
|
||||
await knex.schema.alterTable(WORKSPACE_JOIN_REQUESTS_TABLE, (table) => {
|
||||
table.index('userId')
|
||||
})
|
||||
}
|
||||
|
||||
export async function down(knex: Knex): Promise<void> {
|
||||
await knex.schema.alterTable(WORKSPACE_JOIN_REQUESTS_TABLE, (table) => {
|
||||
table.dropIndex('userId')
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user