Merge remote-tracking branch 'origin' into chuck/web-2435-move-comments-and-webhooks-without-attachments
This commit is contained in:
@@ -1,9 +1,5 @@
|
||||
import { db } from '@/db/knex'
|
||||
import {
|
||||
Resolvers,
|
||||
WorkspacePlans,
|
||||
WorkspacePlanStatuses
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import { Resolvers } from '@/modules/core/graph/generated/graphql'
|
||||
import { removePrivateFields } from '@/modules/core/helpers/userHelper'
|
||||
import {
|
||||
getProjectCollaboratorsFactory,
|
||||
@@ -47,7 +43,7 @@ import { getInvitationTargetUsersFactory } from '@/modules/serverinvites/service
|
||||
import { authorizeResolver } from '@/modules/shared'
|
||||
import { getFeatureFlags, getServerOrigin } from '@/modules/shared/helpers/envHelper'
|
||||
import { getEventBus } from '@/modules/shared/services/eventBus'
|
||||
import { WorkspaceInviteResourceType } from '@/modules/workspaces/domain/constants'
|
||||
import { WorkspaceInviteResourceType } from '@/modules/workspacesCore/domain/constants'
|
||||
import {
|
||||
WorkspaceInvalidRoleError,
|
||||
WorkspaceJoinNotAllowedError,
|
||||
@@ -147,7 +143,6 @@ import {
|
||||
validateStreamAccessFactory
|
||||
} from '@/modules/core/services/streams/access'
|
||||
import {
|
||||
addStreamInviteAcceptedActivityFactory,
|
||||
addStreamPermissionsAddedActivityFactory,
|
||||
addStreamPermissionsRevokedActivityFactory
|
||||
} from '@/modules/activitystream/services/streamActivity'
|
||||
@@ -194,13 +189,10 @@ import { getGenericRedis } from '@/modules/shared/redis/redis'
|
||||
import { convertFunctionToGraphQLReturn } from '@/modules/automate/services/functionManagement'
|
||||
import {
|
||||
getWorkspacePlanFactory,
|
||||
upsertPaidWorkspacePlanFactory,
|
||||
upsertTrialWorkspacePlanFactory,
|
||||
upsertUnpaidWorkspacePlanFactory
|
||||
upsertWorkspacePlanFactory
|
||||
} from '@/modules/gatekeeper/repositories/billing'
|
||||
import { Knex } from 'knex'
|
||||
import { getPaginatedItemsFactory } from '@/modules/shared/services/paginatedItems'
|
||||
import { InvalidWorkspacePlanStatus } from '@/modules/gatekeeper/errors/billing'
|
||||
import { BadRequestError } from '@/modules/shared/errors'
|
||||
import {
|
||||
dismissWorkspaceJoinRequestFactory,
|
||||
@@ -212,6 +204,8 @@ import {
|
||||
} from '@/modules/workspaces/repositories/workspaceJoinRequests'
|
||||
import { sendWorkspaceJoinRequestReceivedEmailFactory } from '@/modules/workspaces/services/workspaceJoinRequestEmails/received'
|
||||
import { getProjectFactory } from '@/modules/core/repositories/projects'
|
||||
import { OperationTypeNode } from 'graphql'
|
||||
import { updateWorkspacePlanFactory } from '@/modules/gatekeeper/services/workspacePlans'
|
||||
|
||||
const eventBus = getEventBus()
|
||||
const getServerInfo = getServerInfoFactory({ db })
|
||||
@@ -289,10 +283,7 @@ const updateStreamRoleAndNotify = updateStreamRoleAndNotifyFactory({
|
||||
validateStreamAccess,
|
||||
getUser,
|
||||
grantStreamPermissions: grantStreamPermissionsFactory({ db }),
|
||||
addStreamInviteAcceptedActivity: addStreamInviteAcceptedActivityFactory({
|
||||
saveActivity,
|
||||
publish
|
||||
}),
|
||||
emitEvent: getEventBus().emit,
|
||||
addStreamPermissionsAddedActivity: addStreamPermissionsAddedActivityFactory({
|
||||
saveActivity,
|
||||
publish
|
||||
@@ -439,73 +430,13 @@ export = FF_WORKSPACES_MODULE_ENABLED
|
||||
AdminMutations: {
|
||||
updateWorkspacePlan: async (_parent, { input }) => {
|
||||
const { workspaceId, plan: name, status } = input
|
||||
const workspace = await getWorkspaceFactory({ db })({
|
||||
workspaceId
|
||||
})
|
||||
const createdAt = new Date()
|
||||
if (!workspace) throw new WorkspaceNotFoundError()
|
||||
switch (name) {
|
||||
case WorkspacePlans.Starter:
|
||||
switch (status) {
|
||||
case WorkspacePlanStatuses.Trial:
|
||||
case WorkspacePlanStatuses.Expired:
|
||||
await upsertTrialWorkspacePlanFactory({ db })({
|
||||
workspacePlan: { workspaceId, status, name, createdAt }
|
||||
})
|
||||
return true
|
||||
case WorkspacePlanStatuses.Valid:
|
||||
case WorkspacePlanStatuses.CancelationScheduled:
|
||||
case WorkspacePlanStatuses.Canceled:
|
||||
case WorkspacePlanStatuses.PaymentFailed:
|
||||
await upsertPaidWorkspacePlanFactory({ db })({
|
||||
workspacePlan: { workspaceId, status, name, createdAt }
|
||||
})
|
||||
return true
|
||||
default:
|
||||
throwUncoveredError(status)
|
||||
}
|
||||
case WorkspacePlans.Business:
|
||||
case WorkspacePlans.Plus:
|
||||
switch (status) {
|
||||
case WorkspacePlanStatuses.Trial:
|
||||
case WorkspacePlanStatuses.Expired:
|
||||
throw new InvalidWorkspacePlanStatus()
|
||||
case WorkspacePlanStatuses.Valid:
|
||||
case WorkspacePlanStatuses.CancelationScheduled:
|
||||
case WorkspacePlanStatuses.Canceled:
|
||||
case WorkspacePlanStatuses.PaymentFailed:
|
||||
await upsertPaidWorkspacePlanFactory({ db })({
|
||||
workspacePlan: { workspaceId, status, name, createdAt }
|
||||
})
|
||||
return true
|
||||
default:
|
||||
throwUncoveredError(status)
|
||||
}
|
||||
|
||||
case WorkspacePlans.Academia:
|
||||
case WorkspacePlans.Unlimited:
|
||||
case WorkspacePlans.StarterInvoiced:
|
||||
case WorkspacePlans.PlusInvoiced:
|
||||
case WorkspacePlans.BusinessInvoiced:
|
||||
switch (status) {
|
||||
case WorkspacePlanStatuses.Valid:
|
||||
await upsertUnpaidWorkspacePlanFactory({ db })({
|
||||
workspacePlan: { workspaceId, status, name, createdAt }
|
||||
})
|
||||
|
||||
return true
|
||||
case WorkspacePlanStatuses.CancelationScheduled:
|
||||
case WorkspacePlanStatuses.Canceled:
|
||||
case WorkspacePlanStatuses.Expired:
|
||||
case WorkspacePlanStatuses.PaymentFailed:
|
||||
case WorkspacePlanStatuses.Trial:
|
||||
throw new InvalidWorkspacePlanStatus()
|
||||
default:
|
||||
throwUncoveredError(status)
|
||||
}
|
||||
default:
|
||||
throwUncoveredError(name)
|
||||
}
|
||||
await updateWorkspacePlanFactory({
|
||||
getWorkspace: getWorkspaceFactory({ db }),
|
||||
upsertWorkspacePlan: upsertWorkspacePlanFactory({ db }),
|
||||
emitEvent: getEventBus().emit
|
||||
})({ workspaceId, name, status })
|
||||
return true
|
||||
}
|
||||
},
|
||||
WorkspaceMutations: {
|
||||
@@ -584,7 +515,8 @@ export = FF_WORKSPACES_MODULE_ENABLED
|
||||
queryAllWorkspaceProjects: queryAllWorkspaceProjectsFactory({
|
||||
getStreams: legacyGetStreamsFactory({ db })
|
||||
}),
|
||||
deleteSsoProvider: deleteSsoProviderFactory({ db })
|
||||
deleteSsoProvider: deleteSsoProviderFactory({ db }),
|
||||
emitWorkspaceEvent: getEventBus().emit
|
||||
})
|
||||
|
||||
// this should be turned into a get all regions and map over the regions...
|
||||
@@ -1005,7 +937,8 @@ export = FF_WORKSPACES_MODULE_ENABLED
|
||||
context.userId!,
|
||||
args.input.workspaceId,
|
||||
Roles.Workspace.Member,
|
||||
context.resourceAccessRules
|
||||
context.resourceAccessRules,
|
||||
OperationTypeNode.MUTATION
|
||||
)
|
||||
|
||||
const createWorkspaceProject = createWorkspaceProjectFactory({
|
||||
@@ -1040,13 +973,15 @@ export = FF_WORKSPACES_MODULE_ENABLED
|
||||
context.userId,
|
||||
projectId,
|
||||
Roles.Stream.Owner,
|
||||
context.resourceAccessRules
|
||||
context.resourceAccessRules,
|
||||
OperationTypeNode.MUTATION
|
||||
)
|
||||
await authorizeResolver(
|
||||
context.userId,
|
||||
workspaceId,
|
||||
Roles.Workspace.Admin,
|
||||
context.resourceAccessRules
|
||||
context.resourceAccessRules,
|
||||
OperationTypeNode.MUTATION
|
||||
)
|
||||
|
||||
const moveProjectToWorkspace = commandFactory({
|
||||
|
||||
Reference in New Issue
Block a user