Files
speckle-server/packages/server/modules/acc/services/webhooks.ts
T
2025-07-30 12:42:47 +02:00

37 lines
1.0 KiB
TypeScript

import { AccSyncItemStatuses } from '@/modules/acc/domain/constants'
import type {
GetAccSyncItemByUrn,
UpsertAccSyncItem
} from '@/modules/acc/domain/operations'
import { logger } from '@/observability/logging'
type OnVersionAdded = (params: {
fileLineageUrn: string
fileVersionUrn: string
fileVersionIndex: number
}) => Promise<void>
export const onVersionAddedFactory =
(deps: {
getAccSyncItemByUrn: GetAccSyncItemByUrn
upsertAccSyncItem: UpsertAccSyncItem
}): OnVersionAdded =>
async ({ fileLineageUrn, fileVersionUrn, fileVersionIndex }) => {
const syncItem = await deps.getAccSyncItemByUrn({ lineageUrn: fileLineageUrn })
if (!syncItem) {
logger.warn(
{ fileLineageUrn },
'Received version added event for file with unknown lineage urn {lineageUrn}'
)
return
}
await deps.upsertAccSyncItem({
...syncItem,
status: AccSyncItemStatuses.pending,
accFileVersionIndex: fileVersionIndex,
accFileVersionUrn: fileVersionUrn
})
}