Files
speckle-server/packages/server/modules/workspaces/services/workspaceCreationState.ts
T
Kristaps Fabians Geikins 4b06f42db7 chore(server): run TS files directly (no compilation) (#5134)
* sort of works

* type fixes

* added option to run old way too
2025-07-23 11:20:40 +02:00

31 lines
923 B
TypeScript

import type { Logger } from '@/observability/logging'
import type {
DeleteWorkspace,
GetWorkspacesNonComplete
} from '@/modules/workspaces/domain/operations'
import dayjs from 'dayjs'
export const deleteWorkspacesNonCompleteFactory =
({
getWorkspacesNonComplete,
deleteWorkspace
}: {
getWorkspacesNonComplete: GetWorkspacesNonComplete
deleteWorkspace: DeleteWorkspace
}) =>
async ({ logger }: { logger: Logger }): Promise<void> => {
const thirtyMinutesAgo = dayjs().subtract(30, 'minutes')
const workspaces = await getWorkspacesNonComplete({
createdAtBefore: thirtyMinutesAgo.toDate()
})
if (!workspaces?.length) return
const workspaceIds = workspaces.map((workspace) => workspace.workspaceId)
logger.info({ workspaceIds }, 'Deleting non complete workspaces')
for (const workspaceId of workspaceIds) {
await deleteWorkspace({ workspaceId })
}
}