chore(server): core IoC #51 - getUser(s)Factory

This commit is contained in:
Kristaps Fabians Geikins
2024-10-14 17:24:11 +03:00
parent 76039b9f07
commit 1cb27e6fdd
79 changed files with 395 additions and 234 deletions
@@ -15,7 +15,6 @@ import {
getUserStreamsPageFactory,
getUserStreamsCountFactory
} from '@/modules/core/repositories/streams'
import { getUser, getUsers } from '@/modules/core/repositories/users'
import { InviteCreateValidationError } from '@/modules/serverinvites/errors'
import {
deleteAllResourceInvitesFactory,
@@ -149,7 +148,10 @@ import {
} from '@/modules/activitystream/services/streamActivity'
import { publish } from '@/modules/shared/utils/subscriptions'
import { updateStreamRoleAndNotifyFactory } from '@/modules/core/services/streams/management'
import { getUserFactory, getUsersFactory } from '@/modules/core/repositories/users'
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const getStream = getStreamFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail: findEmailFactory({ db }),
@@ -170,7 +172,7 @@ const buildCollectAndValidateResourceTargets = () =>
const buildCreateAndSendServerOrProjectInvite = () =>
createAndSendInviteFactory({
findUserByTarget: findUserByTargetFactory(),
findUserByTarget: findUserByTargetFactory({ db }),
insertInviteAndDeleteOld: insertInviteAndDeleteOldFactory({ db }),
collectAndValidateResourceTargets: buildCollectAndValidateResourceTargets(),
buildInviteEmailContents: buildCoreInviteEmailContentsFactory({
@@ -180,12 +182,13 @@ const buildCreateAndSendServerOrProjectInvite = () =>
getEventBus().emit({
eventName,
payload
})
}),
getUser
})
const buildCreateAndSendWorkspaceInvite = () =>
createAndSendInviteFactory({
findUserByTarget: findUserByTargetFactory(),
findUserByTarget: findUserByTargetFactory({ db }),
insertInviteAndDeleteOld: insertInviteAndDeleteOldFactory({ db }),
collectAndValidateResourceTargets: buildCollectAndValidateResourceTargets(),
buildInviteEmailContents: buildWorkspaceInviteEmailContentsFactory({
@@ -196,7 +199,8 @@ const buildCreateAndSendWorkspaceInvite = () =>
getEventBus().emit({
eventName,
payload
})
}),
getUser
})
const deleteStream = deleteStreamFactory({ db })
const saveActivity = saveActivityFactory({ db })
@@ -588,12 +592,13 @@ export = FF_WORKSPACES_MODULE_ENABLED
getStream,
getWorkspace: getWorkspaceFactory({ db })
}),
findUserByTarget: findUserByTargetFactory(),
findUserByTarget: findUserByTargetFactory({ db }),
findInvite: findInviteFactory({
db,
filterQuery: workspaceInviteValidityFilter
}),
markInviteUpdated: markInviteUpdatedfactory({ db })
markInviteUpdated: markInviteUpdatedfactory({ db }),
getUser
})
await resendInviteEmail({
@@ -9,7 +9,6 @@ import { getWorkspaceRoute } from '@/modules/core/helpers/routeHelper'
import { isResourceAllowed } from '@/modules/core/helpers/token'
import { UserRecord } from '@/modules/core/helpers/types'
import { removePrivateFields } from '@/modules/core/helpers/userHelper'
import { getUser } from '@/modules/core/repositories/users'
import {
ProjectInviteResourceType,
ServerInviteResourceType
@@ -72,6 +71,7 @@ import {
userEmailsCompliantWithWorkspaceDomains
} from '@/modules/workspaces/domain/logic'
import { GetStream } from '@/modules/core/domain/streams/operations'
import { GetUser } from '@/modules/core/domain/users/operations'
const isWorkspaceResourceTarget = (
target: InviteResourceTarget
@@ -381,7 +381,7 @@ function buildPendingWorkspaceCollaboratorModel(
export const getUserPendingWorkspaceInviteFactory =
(deps: {
findInvite: FindInvite
getUser: typeof getUser
getUser: GetUser
getWorkspaceBySlug: GetWorkspaceBySlug
}) =>
async (params: {
@@ -425,10 +425,7 @@ export const getUserPendingWorkspaceInviteFactory =
}
export const getUserPendingWorkspaceInvitesFactory =
(deps: {
getUserResourceInvites: QueryAllUserResourceInvites
getUser: typeof getUser
}) =>
(deps: { getUserResourceInvites: QueryAllUserResourceInvites; getUser: GetUser }) =>
async (userId: string): Promise<PendingWorkspaceCollaboratorGraphQLReturn[]> => {
if (!userId) return []
@@ -45,6 +45,7 @@ import {
WorkspaceRoles
} from '@speckle/shared'
import { getStreamFactory } from '@/modules/core/repositories/streams'
import { getUserFactory } from '@/modules/core/repositories/users'
export type BasicTestWorkspace = {
/**
@@ -208,8 +209,9 @@ export const createWorkspaceInviteDirectly = async (
inviterId: string
) => {
const getStream = getStreamFactory({ db })
const getUser = getUserFactory({ db })
const createAndSendInvite = createAndSendInviteFactory({
findUserByTarget: findUserByTargetFactory(),
findUserByTarget: findUserByTargetFactory({ db }),
insertInviteAndDeleteOld: insertInviteAndDeleteOldFactory({ db }),
collectAndValidateResourceTargets: collectAndValidateWorkspaceTargetsFactory({
getStream,
@@ -225,7 +227,8 @@ export const createWorkspaceInviteDirectly = async (
getEventBus().emit({
eventName,
payload
})
}),
getUser
})
const createInvite = createWorkspaceInviteFactory({
@@ -87,12 +87,12 @@ import {
validateStreamAccessFactory
} from '@/modules/core/services/streams/access'
import { authorizeResolver } from '@/modules/shared'
import { getUser } from '@/modules/core/repositories/users'
import {
addStreamInviteAcceptedActivityFactory,
addStreamPermissionsAddedActivityFactory
} from '@/modules/activitystream/services/streamActivity'
import { publish } from '@/modules/shared/utils/subscriptions'
import { getUserFactory } from '@/modules/core/repositories/users'
enum InviteByTarget {
Email = 'email',
@@ -105,6 +105,7 @@ const getStream = getStreamFactory({ db })
const saveActivity = saveActivityFactory({ db })
const validateStreamAccess = validateStreamAccessFactory({ authorizeResolver })
const getUser = getUserFactory({ db })
const addOrUpdateStreamCollaborator = addOrUpdateStreamCollaboratorFactory({
validateStreamAccess,
getUser,