Merge pull request #3316 from specklesystems/fabians/core-ioc-78

chore(server): core IoC #78 - getServerInfoFactory
This commit is contained in:
Alessandro Magionami
2024-10-17 12:14:12 +02:00
committed by GitHub
77 changed files with 300 additions and 155 deletions
@@ -18,12 +18,12 @@ import {
import { StreamAcl, StreamActivity } from '@/modules/core/dbSchema'
import { Roles } from '@/modules/core/helpers/mainConstants'
import { StreamAclRecord } from '@/modules/core/helpers/types'
import { getServerInfo } from '@/modules/core/services/generic'
import { createWebhookEventFactory } from '@/modules/webhooks/repositories/webhooks'
import { dispatchStreamEventFactory } from '@/modules/webhooks/services/webhooks'
import { Knex } from 'knex'
import { getStreamFactory } from '@/modules/core/repositories/streams'
import { getUserFactory } from '@/modules/core/repositories/users'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const tables = {
streamActivity: <T extends object = StreamActivityRecord>(db: Knex) =>
@@ -252,7 +252,7 @@ export const saveActivityFactory =
await dispatchStreamEventFactory({
db,
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
getStream: getStreamFactory({ db }),
createWebhookEvent: createWebhookEventFactory({ db }),
getUser: getUserFactory({ db })
@@ -37,7 +37,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -62,6 +61,7 @@ const {
storeTokenScopesFactory,
storeTokenResourceAccessDefinitionsFactory
} = require('@/modules/core/repositories/tokens')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getUser = getUserFactory({ db })
const getUserActivity = getUserActivityFactory({ db })
@@ -85,13 +85,13 @@ const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
getUser: getUserFactory({ db }),
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
deleteOldAndInsertNewVerification: deleteOldAndInsertNewVerificationFactory({ db }),
renderEmail,
sendEmail
})
const createUser = createUserFactory({
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
findEmail,
storeUser: storeUserFactory({ db }),
countAdminUsers: countAdminUsersFactory({ db }),
@@ -41,11 +41,13 @@ import { ProjectsEmitter } from '@/modules/core/events/projectsEmitter'
import { createBranchFactory } from '@/modules/core/repositories/branches'
import { publish } from '@/modules/shared/utils/subscriptions'
import { getUserFactory, getUsersFactory } from '@/modules/core/repositories/users'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const cleanup = async () => {
await truncateTables([StreamActivity.name, Users.name])
}
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const getStream = getStreamFactory({ db })
@@ -76,7 +78,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
+4 -4
View File
@@ -13,7 +13,6 @@ import {
} from '@/modules/auth/repositories/apps'
import setupStrategiesFactory from '@/modules/auth/strategies'
import githubStrategyBuilderFactory from '@/modules/auth/strategies/github'
import { getServerInfo } from '@/modules/core/services/generic'
import {
validateServerInviteFactory,
finalizeInvitedServerRegistrationFactory,
@@ -59,18 +58,19 @@ import { requestNewEmailVerificationFactory } from '@/modules/emails/services/ve
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
getUser: getUserFactory({ db }),
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
deleteOldAndInsertNewVerification: deleteOldAndInsertNewVerificationFactory({ db }),
renderEmail,
sendEmail
})
const createUser = createUserFactory({
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
findEmail,
storeUser: storeUserFactory({ db }),
countAdminUsers: countAdminUsersFactory({ db }),
@@ -110,7 +110,7 @@ const finalizeInvitedServerRegistration = finalizeInvitedServerRegistrationFacto
const resolveAuthRedirectPath = resolveAuthRedirectPathFactory()
const commonBuilderDeps = {
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
getUserByEmail: legacyGetUserByEmailFactory({ db }),
findOrCreateUser,
validateServerInvite,
@@ -1,7 +1,6 @@
/* istanbul ignore file */
import passport from 'passport'
import { OIDCStrategy, IProfile, VerifyCallback } from 'passport-azure-ad'
import { getServerInfo } from '@/modules/core/services/generic'
import {
UserInputError,
@@ -31,10 +30,11 @@ import {
FindOrCreateValidatedUser,
LegacyGetUserByEmail
} from '@/modules/core/domain/users/operations'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
const azureAdStrategyBuilderFactory =
(deps: {
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
getUserByEmail: LegacyGetUserByEmail
findOrCreateUser: FindOrCreateValidatedUser
validateServerInvite: ValidateServerInvite
@@ -3,7 +3,6 @@
import passport from 'passport'
import type { VerifyCallback } from 'passport-oauth2'
import { Strategy as GithubStrategy, type Profile } from 'passport-github2'
import { getServerInfo } from '@/modules/core/services/generic'
import {
UserInputError,
UnverifiedEmailSSOLoginError
@@ -32,10 +31,11 @@ import {
LegacyGetUserByEmail
} from '@/modules/core/domain/users/operations'
import crs from 'crypto-random-string'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
const githubStrategyBuilderFactory =
(deps: {
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
getUserByEmail: LegacyGetUserByEmail
findOrCreateUser: FindOrCreateValidatedUser
validateServerInvite: ValidateServerInvite
@@ -1,7 +1,6 @@
/* istanbul ignore file */
import passport from 'passport'
import { Strategy as GoogleStrategy } from 'passport-google-oauth20'
import { getServerInfo } from '@/modules/core/services/generic'
import {
UserInputError,
@@ -27,10 +26,11 @@ import {
FindOrCreateValidatedUser,
LegacyGetUserByEmail
} from '@/modules/core/domain/users/operations'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
const googleStrategyBuilderFactory =
(deps: {
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
getUserByEmail: LegacyGetUserByEmail
findOrCreateUser: FindOrCreateValidatedUser
validateServerInvite: ValidateServerInvite
@@ -1,4 +1,3 @@
import { getServerInfo } from '@/modules/core/services/generic'
import {
sendRateLimitResponse,
getRateLimitResult,
@@ -23,12 +22,13 @@ import {
LegacyGetUserByEmail,
ValidateUserPassword
} from '@/modules/core/domain/users/operations'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
const localStrategyBuilderFactory =
(deps: {
validateUserPassword: ValidateUserPassword
getUserByEmail: LegacyGetUserByEmail
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
getRateLimitResult: typeof getRateLimitResult
validateServerInvite: ValidateServerInvite
createUser: CreateValidatedUser
@@ -1,7 +1,6 @@
/* istanbul ignore file */
import passport from 'passport'
import { Issuer, Strategy } from 'openid-client'
import { getServerInfo } from '@/modules/core/services/generic'
import {
getOidcDiscoveryUrl,
getOidcClientId,
@@ -27,10 +26,11 @@ import {
FindOrCreateValidatedUser,
LegacyGetUserByEmail
} from '@/modules/core/domain/users/operations'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
const oidcStrategyBuilderFactory =
(deps: {
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
getUserByEmail: LegacyGetUserByEmail
findOrCreateUser: FindOrCreateValidatedUser
validateServerInvite: ValidateServerInvite
@@ -36,7 +36,6 @@ const {
countAdminUsersFactory,
storeUserAclFactory
} = require('@/modules/core/repositories/users')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -61,6 +60,7 @@ const {
storeUserServerAppTokenFactory,
storePersonalApiTokenFactory
} = require('@/modules/core/repositories/tokens')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
let sendRequest
let server
@@ -84,6 +84,7 @@ const createAppTokenFromAccessCode = createAppTokenFromAccessCodeFactory({
createBareToken
})
const getServerInfo = getServerInfoFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
@@ -46,7 +46,6 @@ const {
storeUserAclFactory,
getUserRoleFactory
} = require('@/modules/core/repositories/users')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -75,6 +74,7 @@ const {
getTokenResourceAccessDefinitionsByIdFactory,
updateApiTokenFactory
} = require('@/modules/core/repositories/tokens')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const db = knex
const getApp = getAppFactory({ db: knex })
@@ -115,6 +115,7 @@ const refreshAppToken = refreshAppTokenFactory({
createBareToken
})
const getServerInfo = getServerInfoFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
@@ -2,7 +2,7 @@ const crs = require('crypto-random-string')
const chai = require('chai')
const request = require('supertest')
const { updateServerInfo, getServerInfo } = require('@/modules/core/services/generic')
const { updateServerInfo } = require('@/modules/core/services/generic')
const { TIME } = require('@speckle/shared')
const { RATE_LIMITERS, createConsumer } = require('@/modules/core/services/ratelimiter')
const { beforeEachContext, initializeTestServer } = require('@/test/hooks')
@@ -73,7 +73,9 @@ const {
finalizeInvitedServerRegistrationFactory
} = require('@/modules/serverinvites/services/processing')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -100,7 +102,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -55,7 +55,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -69,7 +68,9 @@ const {
finalizeInvitedServerRegistrationFactory
} = require('@/modules/serverinvites/services/processing')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -94,7 +95,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -53,7 +53,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -73,7 +72,9 @@ const {
storeTokenScopesFactory,
storeTokenResourceAccessDefinitionsFactory
} = require('@/modules/core/repositories/tokens')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -98,7 +99,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -71,6 +71,7 @@ import { saveActivityFactory } from '@/modules/activitystream/repositories'
import { publish } from '@/modules/shared/utils/subscriptions'
import { addCommitCreatedActivityFactory } from '@/modules/activitystream/services/commitActivity'
import { getUserFactory, getUsersFactory } from '@/modules/core/repositories/users'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const command: CommandModule<
unknown,
@@ -158,6 +159,7 @@ const command: CommandModule<
})
})
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const createStreamReturnRecord = createStreamReturnRecordFactory({
@@ -176,7 +178,8 @@ const command: CommandModule<
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -103,7 +103,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -117,7 +116,9 @@ const {
finalizeInvitedServerRegistrationFactory
} = require('@/modules/serverinvites/services/processing')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
@@ -181,7 +182,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -122,7 +122,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -136,7 +135,9 @@ const {
finalizeInvitedServerRegistrationFactory
} = require('@/modules/serverinvites/services/processing')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const getStream = getStreamFactory({ db })
@@ -229,7 +230,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -0,0 +1,3 @@
import { ServerInfo } from '@/modules/core/domain/server/types'
export type GetServerInfo = () => Promise<ServerInfo>
@@ -0,0 +1 @@
export { ServerInfo } from '@/modules/core/helpers/types'
@@ -39,6 +39,7 @@ import {
insertCommitsFactory,
insertStreamCommitsFactory
} from '@/modules/core/repositories/commits'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import {
getStreamFactory,
getStreamCollaboratorsFactory,
@@ -91,6 +92,7 @@ import {
} from '@/modules/shared/utils/subscriptions'
import { has } from 'lodash'
const getServerInfo = getServerInfoFactory({ db })
const getUsers = getUsersFactory({ db })
const getUser = getUserFactory({ db })
const saveActivity = saveActivityFactory({ db })
@@ -112,7 +114,8 @@ const createStreamReturnRecord = createStreamReturnRecordFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -2,7 +2,6 @@
const { validateScopes } = require('@/modules/shared')
const {
updateServerInfo,
getServerInfo,
getPublicScopes,
getPublicRoles
} = require('../../services/generic')
@@ -12,6 +11,10 @@ const {
speckleAutomateUrl,
enableNewFrontendMessaging
} = require('@/modules/shared/helpers/envHelper')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const { db } = require('@/db/knex')
const getServerInfo = getServerInfoFactory({ db })
module.exports = {
Query: {
@@ -87,7 +87,9 @@ import {
getFavoriteStreamsCollectionFactory
} from '@/modules/core/services/streams/favorite'
import { getUserFactory, getUsersFactory } from '@/modules/core/repositories/users'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUsers = getUsersFactory({ db })
const getUser = getUserFactory({ db })
const getFavoriteStreamsCollection = getFavoriteStreamsCollectionFactory({
@@ -112,7 +114,8 @@ const createStreamReturnRecord = createStreamReturnRecordFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -15,17 +15,17 @@ import {
updateAllInviteTargetsFactory
} from '@/modules/serverinvites/repositories/serverInvites'
import { validateAndCreateUserEmailFactory } from '@/modules/core/services/userEmails'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
import { getUserFactory } from '@/modules/core/repositories/users'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getUser = getUserFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail: findEmailFactory({ db }),
getUser,
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
deleteOldAndInsertNewVerification: deleteOldAndInsertNewVerificationFactory({ db }),
renderEmail,
sendEmail
@@ -17,7 +17,6 @@ import {
legacyGetPaginatedUsersFactory
} from '@/modules/core/repositories/users'
import { UsersMeta } from '@/modules/core/dbSchema'
import { getServerInfo } from '@/modules/core/services/generic'
import { throwForNotHavingServerRole } from '@/modules/shared/authz'
import {
deleteAllUserInvitesFactory,
@@ -40,6 +39,7 @@ import {
import { dbLogger } from '@/logging/logging'
import { getAdminUsersListCollectionFactory } from '@/modules/core/services/users/legacyAdminUsersList'
import { Resolvers } from '@/modules/core/graph/generated/graphql'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getUser = legacyGetUserFactory({ db })
const getUserByEmail = legacyGetUserByEmailFactory({ db })
@@ -52,6 +52,7 @@ const updateUserAndNotify = updateUserAndNotifyFactory({
})
})
const getServerInfo = getServerInfoFactory({ db })
const deleteUser = deleteUserFactory({
deleteStream: deleteStreamFactory({ db }),
logger: dbLogger,
@@ -88,6 +88,10 @@ export type ServerInfo = ServerConfigRecord & {
*/
version: string
migration?: { movedFrom?: string; movedTo?: string }
configuration: {
objectSizeLimitBytes: number
objectMultipartUploadSizeLimitBytes: number
}
}
export type CommitRecord = {
@@ -0,0 +1,58 @@
import { buildTableHelper } from '@/modules/core/dbSchema'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
import { ServerInfo } from '@/modules/core/domain/server/types'
import { ServerConfigRecord } from '@/modules/core/helpers/types'
import {
getFileSizeLimitMB,
getMaximumObjectSizeMB,
getServerMovedFrom,
getServerMovedTo,
getServerOrigin,
getServerVersion
} from '@/modules/shared/helpers/envHelper'
import { Knex } from 'knex'
const ServerConfig = buildTableHelper('server_config', [
'id',
'name',
'company',
'description',
'adminContact',
'termsOfService',
'canonicalUrl',
'completed',
'inviteOnly',
'guestModeEnabled'
])
const tables = {
serverConfig: (db: Knex) => db<ServerConfigRecord>(ServerConfig.name)
}
export const getServerInfoFactory =
(deps: { db: Knex }): GetServerInfo =>
async () => {
const movedTo = getServerMovedTo()
const movedFrom = getServerMovedFrom()
// An entry should always exist from migrations
const serverInfo: ServerInfo = {
...(await tables.serverConfig(deps.db).select('*').first())!,
version: getServerVersion(),
canonicalUrl: getServerOrigin(),
configuration: {
objectSizeLimitBytes: getMaximumObjectSizeMB() * 1024 * 1024,
objectMultipartUploadSizeLimitBytes: getFileSizeLimitMB() * 1024 * 1024
},
...(movedTo || movedFrom
? {
migration: {
movedFrom: movedFrom?.toString(),
movedTo: movedTo?.toString()
}
}
: {})
}
return serverInfo
}
+3 -1
View File
@@ -1,5 +1,4 @@
import * as express from 'express'
import { getServerInfo } from '@/modules/core/services/generic'
import { createRedisClient } from '@/modules/shared/redis/redis'
import {
getRedisUrl,
@@ -10,6 +9,7 @@ import type { Redis } from 'ioredis'
import { numberOfFreeConnections } from '@/modules/shared/helpers/dbHelper'
import { db } from '@/db/knex'
import type { Knex } from 'knex'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
type FreeConnectionsCalculator = {
mean: () => number
@@ -159,6 +159,8 @@ type CheckResponse = { isAlive: true } | { isAlive: false; err: unknown }
type DBCheck = () => Promise<CheckResponse>
const isPostgresAlive: DBCheck = async (): Promise<CheckResponse> => {
const getServerInfo = getServerInfoFactory({ db })
try {
await getServerInfo()
} catch (err) {
@@ -1,36 +1,10 @@
'use strict'
const knex = require('@/db/knex')
const {
getServerVersion,
getServerOrigin,
getServerMovedTo,
getServerMovedFrom,
getMaximumObjectSizeMB,
getFileSizeLimitMB
} = require('@/modules/shared/helpers/envHelper')
const Roles = () => knex('user_roles')
const Scopes = () => knex('scopes')
const Info = () => knex('server_config')
module.exports = {
/**
* @returns {Promise<import('@/modules/core/helpers/types').ServerInfo>}
*/
async getServerInfo() {
const serverInfo = await Info().select('*').first()
serverInfo.version = getServerVersion()
serverInfo.canonicalUrl = getServerOrigin()
const movedTo = getServerMovedTo()
const movedFrom = getServerMovedFrom()
serverInfo.configuration = {
objectSizeLimitBytes: getMaximumObjectSizeMB() * 1024 * 1024,
objectMultipartUploadSizeLimitBytes: getFileSizeLimitMB() * 1024 * 1024
}
if (movedTo || movedFrom) serverInfo.migration = { movedTo, movedFrom }
return serverInfo
},
async getAllScopes() {
return await Scopes().select('*')
},
@@ -21,7 +21,6 @@ import { UserUpdateError, UserValidationError } from '@/modules/core/errors/user
import { PasswordTooShortError, UserInputError } from '@/modules/core/errors/userinput'
import { UserUpdateInput } from '@/modules/core/graph/generated/graphql'
import type { UserRecord } from '@/modules/core/helpers/userHelper'
import { getServerInfo } from '@/modules/core/services/generic'
import { sanitizeImageUrl } from '@/modules/shared/helpers/sanitization'
import {
isNullOrUndefined,
@@ -44,6 +43,7 @@ import {
} from '@/modules/core/domain/streams/operations'
import { Logger } from '@/logging/logging'
import { DeleteAllUserInvites } from '@/modules/serverinvites/domain/operations'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
export const MINIMUM_PASSWORD_LENGTH = 8
@@ -132,7 +132,7 @@ export const changePasswordFactory =
export const createUserFactory =
(deps: {
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
findEmail: FindEmail
storeUser: StoreUser
countAdminUsers: CountAdminUsers
@@ -279,7 +279,7 @@ export const deleteUserFactory =
export const changeUserRoleFactory =
(deps: {
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
isLastAdminUser: IsLastAdminUser
updateUserServerRole: UpdateUserServerRole
}): ChangeUserRole =>
@@ -92,7 +92,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -106,6 +105,7 @@ const {
finalizeInvitedServerRegistrationFactory
} = require('@/modules/serverinvites/services/processing')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const db = knex
const Commits = () => knex('commits')
@@ -132,6 +132,7 @@ const deleteBranchAndNotify = deleteBranchAndNotifyFactory({
deleteBranchById: deleteBranchByIdFactory({ db: knex })
})
const getServerInfo = getServerInfoFactory({ db })
const getObject = getObjectFactory({ db: knex })
const createCommitByBranchId = createCommitByBranchIdFactory({
createCommit: createCommitFactory({ db }),
@@ -175,7 +176,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -98,7 +98,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -112,7 +111,9 @@ const {
finalizeInvitedServerRegistrationFactory
} = require('@/modules/serverinvites/services/processing')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
@@ -196,7 +197,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -61,7 +61,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -75,7 +74,9 @@ const {
finalizeInvitedServerRegistrationFactory
} = require('@/modules/serverinvites/services/processing')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -100,7 +101,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -66,7 +66,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -80,7 +79,9 @@ const {
finalizeInvitedServerRegistrationFactory
} = require('@/modules/serverinvites/services/processing')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -105,7 +106,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -44,7 +44,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -72,6 +71,7 @@ const {
storeTokenResourceAccessDefinitionsFactory,
storePersonalApiTokenFactory
} = require('@/modules/core/repositories/tokens')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getUser = getUserFactory({ db })
const getStream = getStreamFactory({ db })
@@ -105,6 +105,7 @@ const addOrUpdateStreamCollaborator = addOrUpdateStreamCollaboratorFactory({
})
const getUsers = legacyGetPaginatedUsersFactory({ db })
const getServerInfo = getServerInfoFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
@@ -40,7 +40,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -65,6 +64,7 @@ const {
storeTokenResourceAccessDefinitionsFactory,
storePersonalApiTokenFactory
} = require('@/modules/core/repositories/tokens')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const saveActivity = saveActivityFactory({ db })
const validateStreamAccess = validateStreamAccessFactory({ authorizeResolver })
@@ -84,6 +84,7 @@ const addOrUpdateStreamCollaborator = addOrUpdateStreamCollaboratorFactory({
})
})
const getServerInfo = getServerInfoFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
@@ -22,7 +22,6 @@ import {
storeUserFactory
} from '@/modules/core/repositories/users'
import { requestNewEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
@@ -34,7 +33,9 @@ import {
updateAllInviteTargetsFactory
} from '@/modules/serverinvites/repositories/serverInvites'
import { UsersEmitter } from '@/modules/core/events/usersEmitter'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUser = legacyGetUserFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
@@ -19,7 +19,6 @@ import {
storeUserAclFactory,
storeUserFactory
} from '@/modules/core/repositories/users'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
@@ -31,7 +30,9 @@ import {
updateAllInviteTargetsFactory
} from '@/modules/serverinvites/repositories/serverInvites'
import { UsersEmitter } from '@/modules/core/events/usersEmitter'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
@@ -21,7 +21,6 @@ import {
storeUserFactory
} from '@/modules/core/repositories/users'
import { requestNewEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
@@ -33,7 +32,9 @@ import {
updateAllInviteTargetsFactory
} from '@/modules/serverinvites/repositories/serverInvites'
import { UsersEmitter } from '@/modules/core/events/usersEmitter'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUsers = getUsersFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
@@ -22,7 +22,6 @@ import {
findEmailFactory
} from '@/modules/core/repositories/userEmails'
import { requestNewEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
@@ -34,9 +33,11 @@ import {
updateAllInviteTargetsFactory
} from '@/modules/serverinvites/repositories/serverInvites'
import { UsersEmitter } from '@/modules/core/events/usersEmitter'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const userEmailsDB = db(UserEmails.name)
const getServerInfo = getServerInfoFactory({ db })
const getUser = legacyGetUserFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
@@ -25,7 +25,6 @@ import {
updateAllInviteTargetsFactory
} from '@/modules/serverinvites/repositories/serverInvites'
import { requestNewEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
@@ -37,7 +36,9 @@ import {
} from '@/modules/core/repositories/users'
import { createUserFactory } from '@/modules/core/services/users/management'
import { UsersEmitter } from '@/modules/core/events/usersEmitter'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUser = legacyGetUserFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail: findEmailFactory({ db }),
@@ -40,13 +40,14 @@ import {
updateAllInviteTargetsFactory
} from '@/modules/serverinvites/repositories/serverInvites'
import { requestNewEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
import { createUserFactory } from '@/modules/core/services/users/management'
import { UsersEmitter } from '@/modules/core/events/usersEmitter'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUsers = legacyGetPaginatedUsersFactory({ db })
const countUsers = legacyGetPaginatedUsersCountFactory({ db })
@@ -67,7 +67,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -81,6 +80,7 @@ const {
finalizeInvitedServerRegistrationFactory
} = require('@/modules/serverinvites/services/processing')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const sampleCommit = JSON.parse(`{
"Objects": [
@@ -105,6 +105,7 @@ const sampleObject = JSON.parse(`{
"speckleType": "Tests.Polyline"
}`)
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -129,7 +130,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -59,7 +59,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -80,7 +79,9 @@ const {
storeTokenResourceAccessDefinitionsFactory,
storePersonalApiTokenFactory
} = require('@/modules/core/repositories/tokens')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -105,7 +106,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -100,8 +100,9 @@ import {
updateUserServerRoleFactory
} from '@/modules/core/repositories/users'
import { changeUserRoleFactory } from '@/modules/core/services/users/management'
import { getServerInfo } from '@/modules/core/services/generic'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
@@ -161,7 +162,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -100,7 +100,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -139,7 +138,9 @@ const {
updateApiTokenFactory
} = require('@/modules/core/repositories/tokens')
const { getTokenAppInfoFactory } = require('@/modules/auth/repositories/apps')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = legacyGetUserFactory({ db })
const getUsers = getUsersFactory({ db })
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
@@ -190,7 +191,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser: getUserFactory({ db })
getUser: getUserFactory({ db }),
getServerInfo
}),
getUsers
}),
@@ -25,7 +25,6 @@ const {
const {
requestNewEmailVerificationFactory
} = require('@/modules/emails/services/verification/request')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -53,10 +52,12 @@ const {
getUserDeletableStreamsFactory
} = require('@/modules/core/repositories/streams')
const { dbLogger } = require('@/logging/logging')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getUsers = legacyGetPaginatedUsersFactory({ db })
const countUsers = legacyGetPaginatedUsersCountFactory({ db })
const getServerInfo = getServerInfoFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
@@ -47,7 +47,6 @@ import {
findEmailFactory
} from '@/modules/core/repositories/userEmails'
import { requestNewEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { getServerInfo } from '@/modules/core/services/generic'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
@@ -55,10 +54,12 @@ import { createUserFactory } from '@/modules/core/services/users/management'
import { validateAndCreateUserEmailFactory } from '@/modules/core/services/userEmails'
import { finalizeInvitedServerRegistrationFactory } from '@/modules/serverinvites/services/processing'
import { UsersEmitter } from '@/modules/core/events/usersEmitter'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
// To ensure that the invites are created in the correct order, we need to wait a bit between each creation
const WAIT_TIMEOUT = 5
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -83,7 +84,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -29,7 +29,6 @@ import {
} from '@/modules/serverinvites/repositories/serverInvites'
import { buildApolloServer } from '@/app'
import { requestNewEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
@@ -41,7 +40,9 @@ import {
} from '@/modules/core/repositories/users'
import { UsersEmitter } from '@/modules/core/events/usersEmitter'
import { createUserFactory } from '@/modules/core/services/users/management'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail: findEmailFactory({ db }),
@@ -43,6 +43,7 @@ import {
getObjectFactory,
getStreamObjectsFactory
} from '@/modules/core/repositories/objects'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import {
createStreamFactory,
getOnboardingBaseStreamFactory,
@@ -86,6 +87,7 @@ const crossServerSyncModule: SpeckleModule = {
finalize() {
crossServerSyncLogger.info('⬇️ Ensuring base onboarding stream asynchronously...')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const markOnboardingBaseStream = markOnboardingBaseStreamFactory({ db })
@@ -158,7 +160,8 @@ const crossServerSyncModule: SpeckleModule = {
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -1,11 +1,11 @@
import { db } from '@/db/knex'
import { Resolvers } from '@/modules/core/graph/generated/graphql'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import { findPrimaryEmailForUserFactory } from '@/modules/core/repositories/userEmails'
import {
getUserByEmailFactory,
getUserFactory
} from '@/modules/core/repositories/users'
import { getServerInfo } from '@/modules/core/services/generic'
import {
deleteOldAndInsertNewVerificationFactory,
getPendingTokenFactory
@@ -17,7 +17,7 @@ import { requestEmailVerificationFactory } from '@/modules/emails/services/verif
const getUser = getUserFactory({ db })
const requestEmailVerification = requestEmailVerificationFactory({
getUser,
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
deleteOldAndInsertNewVerification: deleteOldAndInsertNewVerificationFactory({ db }),
findPrimaryEmailForUser: findPrimaryEmailForUserFactory({ db }),
sendEmail,
+2 -2
View File
@@ -2,9 +2,9 @@
import { db } from '@/db/knex'
import { moduleLogger } from '@/logging/logging'
import { UsersEmitter } from '@/modules/core/events/usersEmitter'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import { findPrimaryEmailForUserFactory } from '@/modules/core/repositories/userEmails'
import { getUserFactory } from '@/modules/core/repositories/users'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import * as SendingService from '@/modules/emails/services/sending'
@@ -35,7 +35,7 @@ const emailsModule: SpeckleModule = {
userEmitterListener: UsersEmitter.listen,
requestEmailVerification: requestEmailVerificationFactory({
getUser,
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
deleteOldAndInsertNewVerification: deleteOldAndInsertNewVerificationFactory(
{ db }
),
@@ -6,7 +6,6 @@ import { UserEmail } from '@/modules/core/domain/userEmails/types'
import { UsersEmitter, UsersEvents } from '@/modules/core/events/usersEmitter'
import { getEmailVerificationFinalizationRoute } from '@/modules/core/helpers/routeHelper'
import { ServerInfo, UserRecord } from '@/modules/core/helpers/types'
import { getServerInfo } from '@/modules/core/services/generic'
import { EmailVerificationRequestError } from '@/modules/emails/errors'
import {
EmailTemplateParams,
@@ -20,13 +19,14 @@ import {
RequestNewEmailVerification
} from '@/modules/emails/domain/operations'
import { GetUser } from '@/modules/core/domain/users/operations'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
const EMAIL_SUBJECT = 'Speckle Account E-mail Verification'
type CreateNewVerificationDeps = {
getUser: GetUser
findPrimaryEmailForUser: FindPrimaryEmailForUser
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
deleteOldAndInsertNewVerification: DeleteOldAndInsertNewVerification
}
@@ -70,7 +70,7 @@ type VerificationRequestContext = {
type CreateNewEmailVerificationFactoryDeps = {
findEmail: FindEmail
getUser: GetUser
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
deleteOldAndInsertNewVerification: DeleteOldAndInsertNewVerification
}
@@ -1,4 +1,5 @@
import { getServerInfo } from '@/modules/core/services/generic'
import { db } from '@/db/knex'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import {
EmailTemplateServerInfo,
renderEmail
@@ -84,7 +85,7 @@ describe('Basic email template', () => {
})
it('prefills server info, if not passed in', async () => {
const serverInfo = await getServerInfo()
const serverInfo = await getServerInfoFactory({ db })()
const { text, html } = await renderEmail(
{
@@ -24,11 +24,11 @@ import {
import { buildApolloServer } from '@/app'
import { db } from '@/db/knex'
import { requestEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { getServerInfo } from '@/modules/core/services/generic'
import { findPrimaryEmailForUserFactory } from '@/modules/core/repositories/userEmails'
import { sendEmail } from '@/modules/emails/services/sending'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { getUserFactory } from '@/modules/core/repositories/users'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const mailerMock = EmailSendingServiceMock
const getUser = getUserFactory({ db })
@@ -36,7 +36,7 @@ const getPendingToken = getPendingTokenFactory({ db })
const deleteVerifications = deleteVerificationsFactory({ db })
const requestEmailVerification = requestEmailVerificationFactory({
getUser,
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
deleteOldAndInsertNewVerification: deleteOldAndInsertNewVerificationFactory({
db
}),
@@ -47,7 +47,6 @@ import {
findEmailFactory
} from '@/modules/core/repositories/userEmails'
import { requestNewEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { createUserFactory } from '@/modules/core/services/users/management'
@@ -61,7 +60,9 @@ import {
storeTokenResourceAccessDefinitionsFactory,
storeTokenScopesFactory
} from '@/modules/core/repositories/tokens'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -86,7 +87,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -8,7 +8,6 @@ import {
AllActivityTypes,
StreamScopeActivity
} from '@/modules/activitystream/helpers/types'
import { getServerInfo } from '@/modules/core/services/generic'
import { ServerInfo, UserRecord } from '@/modules/core/helpers/types'
import { sendEmail, SendEmailParams } from '@/modules/emails/services/sending'
import { groupBy } from 'lodash'
@@ -33,13 +32,15 @@ import { createActivitySummaryFactory } from '@/modules/activitystream/services/
import { getActivityFactory } from '@/modules/activitystream/repositories'
import { getStreamFactory } from '@/modules/core/repositories/streams'
import { getUserFactory } from '@/modules/core/repositories/users'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const digestNotificationEmailHandlerFactory =
(
deps: {
getUserNotificationPreferences: GetUserNotificationPreferences
createActivitySummary: CreateActivitySummary
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
} & PrepareSummaryEmailDeps
) =>
async (
@@ -441,7 +442,7 @@ const digestNotificationEmailHandler = digestNotificationEmailHandlerFactory({
getActivity: getActivityFactory({ db }),
getUser: getUserFactory({ db })
}),
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
renderEmail
})
@@ -2,15 +2,16 @@ import { db } from '@/db/knex'
import { GetComment } from '@/modules/comments/domain/operations'
import { ExtendedComment } from '@/modules/comments/domain/types'
import { getCommentFactory } from '@/modules/comments/repositories/comments'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
import { GetStream } from '@/modules/core/domain/streams/operations'
import { StreamWithOptionalRole } from '@/modules/core/domain/streams/types'
import { GetUser } from '@/modules/core/domain/users/operations'
import { Roles } from '@/modules/core/helpers/mainConstants'
import { getCommentRoute } from '@/modules/core/helpers/routeHelper'
import { ServerInfo } from '@/modules/core/helpers/types'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import { getStreamFactory } from '@/modules/core/repositories/streams'
import { getUserFactory, UserWithOptionalRole } from '@/modules/core/repositories/users'
import { getServerInfo } from '@/modules/core/services/generic'
import {
EmailTemplateParams,
renderEmail
@@ -168,7 +169,7 @@ const mentionedInCommentHandlerFactory =
getUser: GetUser
getStream: GetStream
getComment: GetComment
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
renderEmail: typeof renderEmail
sendEmail: typeof sendEmail
}): NotificationHandler<MentionedInCommentMessage> =>
@@ -225,7 +226,7 @@ const handler: NotificationHandler<MentionedInCommentMessage> = async (...args)
getUser: getUserFactory({ db }),
getStream: getStreamFactory({ db }),
getComment: getCommentFactory({ db }),
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
renderEmail,
sendEmail
})
@@ -17,13 +17,14 @@ import {
EmailTemplateParams,
renderEmail
} from '@/modules/emails/services/emailRendering'
import { getServerInfo } from '@/modules/core/services/generic'
import { db } from '@/db/knex'
import { GetPendingAccessRequest } from '@/modules/accessrequests/domain/operations'
import { GetStream } from '@/modules/core/domain/streams/operations'
import { getStreamFactory } from '@/modules/core/repositories/streams'
import { GetUser } from '@/modules/core/domain/users/operations'
import { getUserFactory } from '@/modules/core/repositories/users'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
type ValidateMessageDeps = {
getPendingAccessRequest: GetPendingAccessRequest
@@ -123,7 +124,7 @@ function buildEmailTemplateParams(state: ValidatedMessageState): EmailTemplatePa
const newStreamAccessRequestHandlerFactory =
(
deps: {
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
renderEmail: typeof renderEmail
sendEmail: typeof sendEmail
} & ValidateMessageDeps
@@ -148,7 +149,7 @@ const newStreamAccessRequestHandlerFactory =
const handler: NotificationHandler<NewStreamAccessRequestMessage> = (...args) => {
const newStreamAccessRequestHandler = newStreamAccessRequestHandlerFactory({
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
renderEmail,
sendEmail,
getUser: getUserFactory({ db }),
@@ -1,13 +1,14 @@
import { db } from '@/db/knex'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
import { GetStream } from '@/modules/core/domain/streams/operations'
import { GetUser } from '@/modules/core/domain/users/operations'
import {
buildAbsoluteFrontendUrlFromPath,
getStreamRoute
} from '@/modules/core/helpers/routeHelper'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import { getStreamFactory } from '@/modules/core/repositories/streams'
import { getUserFactory } from '@/modules/core/repositories/users'
import { getServerInfo } from '@/modules/core/services/generic'
import {
EmailTemplateParams,
renderEmail
@@ -101,7 +102,7 @@ function buildEmailTemplateParams(state: ValidatedMessageState): EmailTemplatePa
const streamAccessRequestApprovedHandlerFactory =
(
deps: {
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
renderEmail: typeof renderEmail
sendEmail: typeof sendEmail
} & ValidateMessageDeps
@@ -128,7 +129,7 @@ const handler: NotificationHandler<StreamAccessRequestApprovedMessage> = async (
...args
) => {
const streamAccessRequestApprovedHandler = streamAccessRequestApprovedHandlerFactory({
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
renderEmail,
sendEmail,
getUser: getUserFactory({ db }),
@@ -55,7 +55,11 @@ describe('Activity digest notifications @notifications', () => {
completed: false,
inviteOnly: true,
version: 'testing 1 2 3',
guestModeEnabled: false
guestModeEnabled: false,
configuration: {
objectMultipartUploadSizeLimitBytes: 1000000,
objectSizeLimitBytes: 1000000
}
}
const topic: DigestTopic = {
@@ -1,11 +1,11 @@
import { db } from '@/db/knex'
import { deleteExistingAuthTokensFactory } from '@/modules/auth/repositories'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import {
getUserByEmailFactory,
getUserFactory,
updateUserFactory
} from '@/modules/core/repositories/users'
import { getServerInfo } from '@/modules/core/services/generic'
import { changePasswordFactory } from '@/modules/core/services/users/management'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
@@ -29,7 +29,7 @@ export default function (app: Express) {
getUserByEmail,
getPendingToken: getPendingTokenFactory({ db }),
createToken: createTokenFactory({ db }),
getServerInfo,
getServerInfo: getServerInfoFactory({ db }),
renderEmail,
sendEmail
})
@@ -1,6 +1,6 @@
import { GetServerInfo } from '@/modules/core/domain/server/operations'
import { GetUserByEmail } from '@/modules/core/domain/users/operations'
import { getPasswordResetFinalizationRoute } from '@/modules/core/helpers/routeHelper'
import { getServerInfo } from '@/modules/core/services/generic'
import {
EmailTemplateParams,
renderEmail
@@ -17,7 +17,7 @@ type InitializeNewTokenDeps = {
getUserByEmail: GetUserByEmail
getPendingToken: GetPendingToken
createToken: CreateToken
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
}
/**
@@ -21,7 +21,6 @@ const {
countAdminUsersFactory,
storeUserAclFactory
} = require('@/modules/core/repositories/users')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
deleteOldAndInsertNewVerificationFactory
} = require('@/modules/emails/repositories')
@@ -39,8 +38,10 @@ const {
updateAllInviteTargetsFactory
} = require('@/modules/serverinvites/repositories/serverInvites')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const db = knex
const getServerInfo = getServerInfoFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
@@ -67,7 +67,6 @@ import {
findEmailFactory
} from '@/modules/core/repositories/userEmails'
import { validateAndCreateUserEmailFactory } from '@/modules/core/services/userEmails'
import { getServerInfo } from '@/modules/core/services/generic'
import { requestNewEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
@@ -83,6 +82,7 @@ import {
validateStreamAccessFactory
} from '@/modules/core/services/streams/access'
import { getUserFactory, getUsersFactory } from '@/modules/core/repositories/users'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const saveActivity = saveActivityFactory({ db })
const validateStreamAccess = validateStreamAccessFactory({ authorizeResolver })
@@ -102,6 +102,7 @@ const addOrUpdateStreamCollaborator = addOrUpdateStreamCollaboratorFactory({
publish
})
})
const getServerInfo = getServerInfoFactory({ db })
const getStream = getStreamFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail: findEmailFactory({ db }),
@@ -130,7 +131,8 @@ const buildCreateAndSendServerOrProjectInvite = () =>
eventName,
payload
}),
getUser
getUser,
getServerInfo
})
export = {
@@ -383,7 +385,8 @@ export = {
findUserByTarget: findUserByTargetFactory({ db }),
findInvite: findInviteFactory({ db }),
markInviteUpdated: markInviteUpdatedfactory({ db }),
getUser
getUser,
getServerInfo
})
await resendInviteEmail({ inviteId })
@@ -1,5 +1,4 @@
import crs from 'crypto-random-string'
import { getServerInfo } from '@/modules/core/services/generic'
import emailsModule from '@/modules/emails'
import { InviteCreateValidationError } from '@/modules/serverinvites/errors'
import sanitizeHtml from 'sanitize-html'
@@ -32,6 +31,7 @@ import {
import { ServerInfo } from '@/modules/core/helpers/types'
import { EventBusEmit } from '@/modules/shared/services/eventBus'
import { GetUser } from '@/modules/core/domain/users/operations'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
const getFinalTargetData = (
target: string,
@@ -90,7 +90,8 @@ export const createAndSendInviteFactory =
collectAndValidateResourceTargets,
buildInviteEmailContents,
emitEvent,
getUser
getUser,
getServerInfo
}: {
findUserByTarget: FindUserByTarget
insertInviteAndDeleteOld: InsertInviteAndDeleteOld
@@ -98,6 +99,7 @@ export const createAndSendInviteFactory =
buildInviteEmailContents: BuildInviteEmailContents
emitEvent: EventBusEmit
getUser: GetUser
getServerInfo: GetServerInfo
}): CreateAndSendInvite =>
async (params, inviterResourceAccessLimits?) => {
const sendInviteEmail = sendInviteEmailFactory({ buildInviteEmailContents })
@@ -194,13 +196,15 @@ export const resendInviteEmailFactory =
findUserByTarget,
findInvite,
markInviteUpdated,
getUser
getUser,
getServerInfo
}: {
buildInviteEmailContents: BuildInviteEmailContents
findUserByTarget: FindUserByTarget
findInvite: FindInvite
markInviteUpdated: MarkInviteUpdated
getUser: GetUser
getServerInfo: GetServerInfo
}): ResendInviteEmail =>
async (params) => {
const sendInviteEmail = sendInviteEmailFactory({ buildInviteEmailContents })
@@ -46,8 +46,8 @@ import {
ValidateAndCreateUserEmail
} from '@/modules/core/domain/userEmails/operations'
import { ServerInfo } from '@/modules/core/helpers/types'
import { getServerInfo } from '@/modules/core/services/generic'
import { GetUser } from '@/modules/core/domain/users/operations'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
/**
* Convert the initial validation function to a finalization validation function so same logic can be reused
@@ -195,7 +195,7 @@ type FinalizeResourceInviteFactoryDeps = {
findEmail: FindEmail
validateAndCreateUserEmail: ValidateAndCreateUserEmail
collectAndValidateResourceTargets: CollectAndValidateResourceTargets
getServerInfo: typeof getServerInfo
getServerInfo: GetServerInfo
getUser: GetUser
}
@@ -73,7 +73,6 @@ import {
findEmailFactory
} from '@/modules/core/repositories/userEmails'
import { requestNewEmailVerificationFactory } from '@/modules/emails/services/verification/request'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
@@ -88,7 +87,9 @@ import {
storeTokenResourceAccessDefinitionsFactory,
storeTokenScopesFactory
} from '@/modules/core/repositories/tokens'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUsers = getUsersFactory({ db })
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getObject = getObjectFactory({ db })
@@ -135,7 +136,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser: getUserFactory({ db })
getUser: getUserFactory({ db }),
getServerInfo
}),
getUsers
}),
@@ -1,4 +1,3 @@
import { getServerInfo as getServerInfoFn } from '@/modules/core/services/generic'
import { ForbiddenError } from '@/modules/shared/errors'
import {
CountWebhooksByStreamId,
@@ -17,6 +16,7 @@ import { ServerInfo } from '@/modules/core/helpers/types'
import { GetStream } from '@/modules/core/domain/streams/operations'
import { UserWithOptionalRole } from '@/modules/core/domain/users/types'
import { GetUser } from '@/modules/core/domain/users/operations'
import { GetServerInfo } from '@/modules/core/domain/server/operations'
const MAX_STREAM_WEBHOOKS = 100
@@ -105,7 +105,7 @@ export const dispatchStreamEventFactory =
getUser
}: {
db: Knex // TODO: this should not be injected here
getServerInfo: typeof getServerInfoFn
getServerInfo: GetServerInfo
getStream: GetStream
createWebhookEvent: CreateWebhookEvent
getUser: GetUser
@@ -8,6 +8,7 @@ import {
createRandomPassword
} from '@/modules/core/helpers/testHelpers'
import { createBranchFactory } from '@/modules/core/repositories/branches'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import {
createStreamFactory,
getStreamFactory
@@ -24,7 +25,6 @@ import {
storeUserAclFactory,
storeUserFactory
} from '@/modules/core/repositories/users'
import { getServerInfo } from '@/modules/core/services/generic'
import {
createStreamReturnRecordFactory,
legacyCreateStreamFactory
@@ -59,6 +59,7 @@ const WEBHOOKS_EVENTS_TABLE = 'webhooks_events'
const WebhooksConfig = () => knex(WEBHOOKS_CONFIG_TABLE)
const randomId = () => crs({ length: 10 })
const getServerInfo = getServerInfoFactory({ db })
const getUsers = getUsersFactory({ db })
const getUser = getUserFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -83,7 +84,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -27,7 +27,6 @@ const {
dispatchStreamEventFactory
} = require('@/modules/webhooks/services/webhooks')
const { Users, Streams } = require('@/modules/core/dbSchema')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
getStreamFactory,
createStreamFactory,
@@ -98,7 +97,9 @@ const {
storeTokenResourceAccessDefinitionsFactory,
storePersonalApiTokenFactory
} = require('@/modules/core/repositories/tokens')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -127,7 +128,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
@@ -129,7 +129,6 @@ import {
deleteWorkspaceDomainFactory,
isUserWorkspaceDomainPolicyCompliantFactory
} from '@/modules/workspaces/services/domains'
import { getServerInfo } from '@/modules/core/services/generic'
import { deleteOldAndInsertNewVerificationFactory } from '@/modules/emails/repositories'
import { renderEmail } from '@/modules/emails/services/emailRendering'
import { sendEmail } from '@/modules/emails/services/sending'
@@ -149,7 +148,9 @@ import {
import { publish } from '@/modules/shared/utils/subscriptions'
import { updateStreamRoleAndNotifyFactory } from '@/modules/core/services/streams/management'
import { getUserFactory, getUsersFactory } from '@/modules/core/repositories/users'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getUsers = getUsersFactory({ db })
const getStream = getStreamFactory({ db })
@@ -183,7 +184,8 @@ const buildCreateAndSendServerOrProjectInvite = () =>
eventName,
payload
}),
getUser
getUser,
getServerInfo
})
const buildCreateAndSendWorkspaceInvite = () =>
@@ -200,7 +202,8 @@ const buildCreateAndSendWorkspaceInvite = () =>
eventName,
payload
}),
getUser
getUser,
getServerInfo
})
const deleteStream = deleteStreamFactory({ db })
const saveActivity = saveActivityFactory({ db })
@@ -598,7 +601,8 @@ export = FF_WORKSPACES_MODULE_ENABLED
filterQuery: workspaceInviteValidityFilter
}),
markInviteUpdated: markInviteUpdatedfactory({ db }),
getUser
getUser,
getServerInfo
})
await resendInviteEmail({
@@ -46,6 +46,7 @@ import {
} from '@speckle/shared'
import { getStreamFactory } from '@/modules/core/repositories/streams'
import { getUserFactory } from '@/modules/core/repositories/users'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
export type BasicTestWorkspace = {
/**
@@ -208,6 +209,7 @@ export const createWorkspaceInviteDirectly = async (
args: CreateWorkspaceInviteMutationVariables,
inviterId: string
) => {
const getServerInfo = getServerInfoFactory({ db })
const getStream = getStreamFactory({ db })
const getUser = getUserFactory({ db })
const createAndSendInvite = createAndSendInviteFactory({
@@ -228,7 +230,8 @@ export const createWorkspaceInviteDirectly = async (
eventName,
payload
}),
getUser
getUser,
getServerInfo
})
const createInvite = createWorkspaceInviteFactory({
+2 -1
View File
@@ -2,6 +2,7 @@ require('../bootstrap')
const { db } = require('@/db/knex')
const { logger } = require('@/logging/logging')
const { UsersEmitter } = require('@/modules/core/events/usersEmitter')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const {
findEmailFactory,
createUserEmailFactory,
@@ -13,7 +14,6 @@ const {
countAdminUsersFactory,
storeUserAclFactory
} = require('@/modules/core/repositories/users')
const { getServerInfo } = require('@/modules/core/services/generic')
const {
validateAndCreateUserEmailFactory
} = require('@/modules/core/services/userEmails')
@@ -35,6 +35,7 @@ const {
} = require('@/modules/serverinvites/services/processing')
const axios = require('axios').default
const getServerInfo = getServerInfoFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
+4 -1
View File
@@ -51,7 +51,9 @@ const {
storeTokenResourceAccessDefinitionsFactory,
storePersonalApiTokenFactory
} = require('@/modules/core/repositories/tokens')
const { getServerInfoFactory } = require('@/modules/core/repositories/server')
const getServerInfo = getServerInfoFactory({ db })
const getUsers = getUsersFactory({ db })
const getUser = getUserFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -76,7 +78,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),
+2 -1
View File
@@ -2,6 +2,7 @@ import { db } from '@/db/knex'
import { UsersEmitter } from '@/modules/core/events/usersEmitter'
import { AllScopes, ServerRoles } from '@/modules/core/helpers/mainConstants'
import { UserRecord } from '@/modules/core/helpers/types'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import {
storeApiTokenFactory,
storePersonalApiTokenFactory,
@@ -19,7 +20,6 @@ import {
storeUserAclFactory,
storeUserFactory
} from '@/modules/core/repositories/users'
import { getServerInfo } from '@/modules/core/services/generic'
import { createPersonalAccessTokenFactory } from '@/modules/core/services/tokens'
import { validateAndCreateUserEmailFactory } from '@/modules/core/services/userEmails'
import { createUserFactory } from '@/modules/core/services/users/management'
@@ -35,6 +35,7 @@ import { finalizeInvitedServerRegistrationFactory } from '@/modules/serverinvite
import { ServerScope } from '@speckle/shared'
import { kebabCase, omit } from 'lodash'
const getServerInfo = getServerInfoFactory({ db })
const findEmail = findEmailFactory({ db })
const requestNewEmailVerification = requestNewEmailVerificationFactory({
findEmail,
@@ -27,7 +27,9 @@ import {
import { EmailSendingServiceMock } from '@/test/mocks/global'
import { getStreamFactory } from '@/modules/core/repositories/streams'
import { getUserFactory } from '@/modules/core/repositories/users'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
const getServerInfo = getServerInfoFactory({ db })
const getUser = getUserFactory({ db })
const getStream = getStreamFactory({ db })
const createAndSendInvite = createAndSendInviteFactory({
@@ -44,7 +46,8 @@ const createAndSendInvite = createAndSendInviteFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
})
export const createServerInviteDirectly = async (
@@ -8,6 +8,7 @@ import { StreamAcl } from '@/modules/core/dbSchema'
import { ProjectsEmitter } from '@/modules/core/events/projectsEmitter'
import { StreamAclRecord, StreamRecord } from '@/modules/core/helpers/types'
import { createBranchFactory } from '@/modules/core/repositories/branches'
import { getServerInfoFactory } from '@/modules/core/repositories/server'
import {
createStreamFactory,
getStreamFactory,
@@ -39,6 +40,7 @@ import { BasicTestUser } from '@/test/authHelper'
import { ensureError } from '@speckle/shared'
import { omit } from 'lodash'
const getServerInfo = getServerInfoFactory({ db })
const getUsers = getUsersFactory({ db })
const getUser = getUserFactory({ db })
const addStreamCreatedActivity = addStreamCreatedActivityFactory({
@@ -63,7 +65,8 @@ const createStream = legacyCreateStreamFactory({
eventName,
payload
}),
getUser
getUser,
getServerInfo
}),
getUsers
}),