chore(server): core IoC #48 - markCommitStreamUpdatedFactory

This commit is contained in:
Kristaps Fabians Geikins
2024-10-14 16:01:53 +03:00
parent f976a929a9
commit 30331c6f8e
16 changed files with 58 additions and 36 deletions
@@ -4,7 +4,7 @@ import { cliLogger } from '@/logging/logging'
import {
getStreamCollaboratorsFactory,
getStreamFactory,
markCommitStreamUpdated
markCommitStreamUpdatedFactory
} from '@/modules/core/repositories/streams'
import {
getBranchByIdFactory,
@@ -94,6 +94,7 @@ const command: CommandModule<
}
},
handler: async (argv) => {
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getStream = getStreamFactory({ db })
const getObject = getObjectFactory({ db })
const getStreamObjects = getStreamObjectsFactory({ db })
@@ -6,7 +6,7 @@ import {
createStreamFactory,
getStreamCollaboratorsFactory,
getStreamFactory,
markCommitStreamUpdated
markCommitStreamUpdatedFactory
} from '@/modules/core/repositories/streams'
import {
createBranchFactory,
@@ -106,6 +106,7 @@ const command: CommandModule<
handler: async (argv) => {
const getStream = getStreamFactory({ db })
const getObject = getObjectFactory({ db })
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getStreamObjects = getStreamObjectsFactory({ db })
const markCommentViewed = markCommentViewedFactory({ db })
@@ -48,11 +48,11 @@ const {
createBranchFactory
} = require('@/modules/core/repositories/branches')
const {
markCommitStreamUpdated,
getStreamFactory,
createStreamFactory,
updateStreamFactory,
grantStreamPermissionsFactory
grantStreamPermissionsFactory,
markCommitStreamUpdatedFactory
} = require('@/modules/core/repositories/streams')
const { VersionsEmitter } = require('@/modules/core/events/versionsEmitter')
const { getObjectFactory } = require('@/modules/core/repositories/objects')
@@ -89,6 +89,7 @@ const {
addCommitCreatedActivityFactory
} = require('@/modules/activitystream/services/commitActivity')
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const streamResourceCheck = streamResourceCheckFactory({
checkStreamResourceAccess: checkStreamResourceAccessFactory({ db })
})
@@ -55,9 +55,9 @@ const { db } = require('@/db/knex')
const { getBlobsFactory } = require('@/modules/blobstorage/repositories')
const { CommentsEmitter } = require('@/modules/comments/events/emitter')
const {
markCommitStreamUpdated,
getStreamFactory,
createStreamFactory
createStreamFactory,
markCommitStreamUpdatedFactory
} = require('@/modules/core/repositories/streams')
const {
createCommitByBranchIdFactory,
@@ -154,6 +154,7 @@ const getComments = getCommentsLegacyFactory({ db })
const getResourceCommentCount = getResourceCommentCountFactory({ db })
const getStreamCommentCount = getStreamCommentCountFactory({ db })
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getObject = getObjectFactory({ db })
const createCommitByBranchId = createCommitByBranchIdFactory({
createCommit: createCommitFactory({ db }),
@@ -184,6 +184,8 @@ export type GetUserStreamsCount = (
export type MarkBranchStreamUpdated = (branchId: string) => Promise<boolean>
export type MarkCommitStreamUpdated = (commitId: string) => Promise<boolean>
export type GetBatchUserFavoriteData = (params: {
userId: string
streamIds: string[]
@@ -54,10 +54,10 @@ const {
} = require('@/modules/core/repositories/commits')
const { db } = require('@/db/knex')
const {
markCommitStreamUpdated,
getStreamFactory,
getStreamsFactory,
getCommitStreamFactory
getCommitStreamFactory,
markCommitStreamUpdatedFactory
} = require('@/modules/core/repositories/streams')
const {
markCommitBranchUpdatedFactory,
@@ -83,6 +83,7 @@ const COMMIT_CREATED = CommitPubsubEvents.CommitCreated
const COMMIT_UPDATED = CommitPubsubEvents.CommitUpdated
const COMMIT_DELETED = CommitPubsubEvents.CommitDeleted
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getCommitStream = getCommitStreamFactory({ db })
const getStream = getStreamFactory({ db })
const getStreams = getStreamsFactory({ db })
@@ -44,7 +44,7 @@ import {
getCommitStreamFactory,
getStreamFactory,
getStreamsFactory,
markCommitStreamUpdated
markCommitStreamUpdatedFactory
} from '@/modules/core/repositories/streams'
import { VersionsEmitter } from '@/modules/core/events/versionsEmitter'
import {
@@ -55,6 +55,7 @@ import {
import { getObjectFactory } from '@/modules/core/repositories/objects'
import { saveActivityFactory } from '@/modules/activitystream/repositories'
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getCommitStream = getCommitStreamFactory({ db })
const getStream = getStreamFactory({ db })
const getStreams = getStreamsFactory({ db })
@@ -96,7 +96,8 @@ import {
UserStreamsQueryCountParams,
GetUserStreamsPage,
GetUserStreamsCount,
MarkBranchStreamUpdated
MarkBranchStreamUpdated,
MarkCommitStreamUpdated
} from '@/modules/core/domain/streams/operations'
export type { StreamWithOptionalRole, StreamWithCommitId }
@@ -1003,17 +1004,20 @@ export const markBranchStreamUpdatedFactory =
return updates > 0
}
export async function markCommitStreamUpdated(commitId: string) {
const q = Streams.knex()
.whereIn(Streams.col.id, (w) => {
w.select(StreamCommits.col.streamId)
.from(StreamCommits.name)
.where(StreamCommits.col.commitId, commitId)
})
.update(Streams.withoutTablePrefix.col.updatedAt, new Date())
const updates = await q
return updates > 0
}
export const markCommitStreamUpdatedFactory =
(deps: { db: Knex }): MarkCommitStreamUpdated =>
async (commitId: string) => {
const q = tables
.streams(deps.db)
.whereIn(Streams.col.id, (w) => {
w.select(StreamCommits.col.streamId)
.from(StreamCommits.name)
.where(StreamCommits.col.commitId, commitId)
})
.update(Streams.withoutTablePrefix.col.updatedAt, new Date())
const updates = await q
return updates > 0
}
export const upsertProjectRoleFactory =
({ db }: { db: Knex }): UpsertProjectRole =>
@@ -27,7 +27,11 @@ import {
UpdateCommitAndNotify
} from '@/modules/core/domain/commits/operations'
import { GetObject } from '@/modules/core/domain/objects/operations'
import { GetCommitStream, GetStream } from '@/modules/core/domain/streams/operations'
import {
GetCommitStream,
GetStream,
MarkCommitStreamUpdated
} from '@/modules/core/domain/streams/operations'
import {
CommitCreateError,
CommitDeleteError,
@@ -46,7 +50,6 @@ import {
} from '@/modules/core/graph/generated/graphql'
import { CommitRecord } from '@/modules/core/helpers/types'
import { getCommitFactory } from '@/modules/core/repositories/commits'
import { markCommitStreamUpdated } from '@/modules/core/repositories/streams'
import { ensureError, MaybeNullOrUndefined, Nullable, Roles } from '@speckle/shared'
import { has } from 'lodash'
@@ -88,7 +91,7 @@ export const createCommitByBranchIdFactory =
getBranchById: GetBranchById
insertStreamCommits: InsertStreamCommits
insertBranchCommits: InsertBranchCommits
markCommitStreamUpdated: typeof markCommitStreamUpdated
markCommitStreamUpdated: MarkCommitStreamUpdated
markCommitBranchUpdated: MarkCommitBranchUpdated
versionsEventEmitter: VersionsEventEmitter
addCommitCreatedActivity: AddCommitCreatedActivity
@@ -259,7 +262,7 @@ export const updateCommitAndNotifyFactory =
switchCommitBranch: SwitchCommitBranch
updateCommit: UpdateCommit
addCommitUpdatedActivity: AddCommitUpdatedActivity
markCommitStreamUpdated: typeof markCommitStreamUpdated
markCommitStreamUpdated: MarkCommitStreamUpdated
markCommitBranchUpdated: MarkCommitBranchUpdated
}): UpdateCommitAndNotify =>
async (params: CommitUpdateInput | UpdateVersionInput, userId: string) => {
@@ -358,7 +361,7 @@ export const updateCommitAndNotifyFactory =
export const deleteCommitAndNotifyFactory =
(deps: {
getCommit: GetCommit
markCommitStreamUpdated: typeof markCommitStreamUpdated
markCommitStreamUpdated: MarkCommitStreamUpdated
markCommitBranchUpdated: MarkCommitBranchUpdated
deleteCommit: DeleteCommit
addCommitDeletedActivity: typeof addCommitDeletedActivity
@@ -29,10 +29,10 @@ const {
addBranchDeletedActivity
} = require('@/modules/activitystream/services/branchActivity')
const {
markCommitStreamUpdated,
getStreamFactory,
createStreamFactory,
markBranchStreamUpdatedFactory
markBranchStreamUpdatedFactory,
markCommitStreamUpdatedFactory
} = require('@/modules/core/repositories/streams')
const { ModelsEmitter } = require('@/modules/core/events/modelsEmitter')
const {
@@ -81,6 +81,7 @@ const {
const db = knex
const Commits = () => knex('commits')
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const markBranchStreamUpdated = markBranchStreamUpdatedFactory({ db })
const getStream = getStreamFactory({ db: knex })
const getBranchById = getBranchByIdFactory({ db: knex })
@@ -44,10 +44,10 @@ const {
updateCommitAndNotifyFactory
} = require('@/modules/core/services/commit/management')
const {
markCommitStreamUpdated,
getStreamFactory,
getCommitStreamFactory,
createStreamFactory
createStreamFactory,
markCommitStreamUpdatedFactory
} = require('@/modules/core/repositories/streams')
const {
addCommitDeletedActivity,
@@ -84,6 +84,7 @@ const {
const { saveActivityFactory } = require('@/modules/activitystream/repositories')
const { publish } = require('@/modules/shared/utils/subscriptions')
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getCommitStream = getCommitStreamFactory({ db })
const getStream = getStreamFactory({ db })
const createBranch = createBranchFactory({ db })
@@ -22,7 +22,7 @@ import {
grantStreamPermissionsFactory,
legacyGetStreamUsersFactory,
markBranchStreamUpdatedFactory,
markCommitStreamUpdated,
markCommitStreamUpdatedFactory,
revokeStreamPermissionsFactory,
updateStreamFactory
} from '@/modules/core/repositories/streams'
@@ -96,6 +96,7 @@ import {
} from '@/modules/core/services/streams/access'
import { authorizeResolver } from '@/modules/shared'
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const markBranchStreamUpdated = markBranchStreamUpdatedFactory({ db })
const getStream = getStreamFactory({ db })
const getStreamBranchByName = getStreamBranchByNameFactory({ db })
@@ -48,10 +48,10 @@ const {
createCommitByBranchNameFactory
} = require('@/modules/core/services/commit/management')
const {
markCommitStreamUpdated,
getStreamFactory,
createStreamFactory,
grantStreamPermissionsFactory
grantStreamPermissionsFactory,
markCommitStreamUpdatedFactory
} = require('@/modules/core/repositories/streams')
const { VersionsEmitter } = require('@/modules/core/events/versionsEmitter')
const { getObjectFactory } = require('@/modules/core/repositories/objects')
@@ -87,6 +87,7 @@ const {
addCommitCreatedActivityFactory
} = require('@/modules/activitystream/services/commitActivity')
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getStream = getStreamFactory({ db })
const createBranch = createBranchFactory({ db })
const getCommit = getCommitFactory({ db })
@@ -48,7 +48,7 @@ import {
getOnboardingBaseStreamFactory,
getStreamCollaboratorsFactory,
getStreamFactory,
markCommitStreamUpdated,
markCommitStreamUpdatedFactory,
markOnboardingBaseStream
} from '@/modules/core/repositories/streams'
import { getFirstAdmin, getUser, getUsers } from '@/modules/core/repositories/users'
@@ -82,6 +82,7 @@ const crossServerSyncModule: SpeckleModule = {
finalize() {
crossServerSyncLogger.info('⬇️ Ensuring base onboarding stream asynchronously...')
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getStream = getStreamFactory({ db })
const getObject = getObjectFactory({ db })
const getStreamObjects = getStreamObjectsFactory({ db })
@@ -38,7 +38,7 @@ import {
import {
createStreamFactory,
getStreamFactory,
markCommitStreamUpdated
markCommitStreamUpdatedFactory
} from '@/modules/core/repositories/streams'
import { VersionsEmitter } from '@/modules/core/events/versionsEmitter'
import { getObjectFactory } from '@/modules/core/repositories/objects'
@@ -62,6 +62,7 @@ import { saveActivityFactory } from '@/modules/activitystream/repositories'
import { publish } from '@/modules/shared/utils/subscriptions'
import { addCommitCreatedActivityFactory } from '@/modules/activitystream/services/commitActivity'
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getObject = getObjectFactory({ db })
const createCommitByBranchId = createCommitByBranchIdFactory({
createCommit: createCommitFactory({ db }),
@@ -13,7 +13,7 @@ import {
insertStreamCommitsFactory
} from '@/modules/core/repositories/commits'
import { getObjectFactory } from '@/modules/core/repositories/objects'
import { markCommitStreamUpdated } from '@/modules/core/repositories/streams'
import { markCommitStreamUpdatedFactory } from '@/modules/core/repositories/streams'
import {
createCommitByBranchIdFactory,
createCommitByBranchNameFactory
@@ -23,6 +23,7 @@ import { publish } from '@/modules/shared/utils/subscriptions'
import { BasicTestUser } from '@/test/authHelper'
import { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
const markCommitStreamUpdated = markCommitStreamUpdatedFactory({ db })
const getObject = getObjectFactory({ db })
const createCommitByBranchId = createCommitByBranchIdFactory({
createCommit: createCommitFactory({ db }),