bde148f286
* wip * some extra fixes * stuff kinda works? * need to figure out mocks * need to figure out mocks * fix db listener * gqlgen fix * minor gqlgen watch adjustment * lint fixes * delete old codegen file * converting migrations to ESM * getModuleDIrectory * vitest sort of works * added back ts-vitest * resolve gql double load * fixing test timeout configs * TSC lint fix * fix automate tests * moar debugging * debugging * more debugging * codegen update * server works * yargs migrated * chore(server): getting rid of global mocks for Server ESM (#5046) * got rid of email mock * got rid of comment mocks * got rid of multi region mocks * got rid of stripe mock * admin override mock updated * removed final mock * fixing import.meta.resolve calls * another import.meta.resolve fix * added requested test * nyc ESM fix * removed unneeded deps + linting * yarn lock forgot to commit * tryna fix flakyness * email capture util fix * sendEmail fix * fix TSX check * sender transporter fix + CR comments * merge main fix * test fixx * circleci fix * gqlgen bigint fix * error formatter fix * more error formatting improvements * esmloader added to Dockerfile * more dockerfile fixes * bg jobs fix
73 lines
2.5 KiB
TypeScript
73 lines
2.5 KiB
TypeScript
import { randomInt } from 'crypto'
|
|
import cryptoRandomString from 'crypto-random-string'
|
|
import { saveUploadFileFactory } from '@/modules/fileuploads/repositories/fileUploads'
|
|
import { db } from '@/db/knex'
|
|
import { FileImportMessage } from '@/modules/fileuploads/domain/operations'
|
|
import { assign } from 'lodash-es'
|
|
import {
|
|
FileUploadRecord,
|
|
FileUploadRecordV2
|
|
} from '@/modules/fileuploads/helpers/types'
|
|
import { FileUploadConvertedStatus } from '@speckle/shared/blobs'
|
|
|
|
const saveUploadFile = saveUploadFileFactory({ db })
|
|
export const createFileUploadJob = (params: { projectId: string; userId: string }) => {
|
|
const { projectId, userId } = params
|
|
const jobId = cryptoRandomString({ length: 10 })
|
|
const data = {
|
|
fileId: jobId,
|
|
streamId: projectId,
|
|
branchName: cryptoRandomString({ length: 10 }),
|
|
userId,
|
|
fileName: cryptoRandomString({ length: 10 }),
|
|
fileType: cryptoRandomString({ length: 3 }),
|
|
fileSize: randomInt(1, 1e6),
|
|
modelId: null
|
|
}
|
|
|
|
return saveUploadFile(data)
|
|
}
|
|
|
|
export const buildFileUploadMessage = (
|
|
override: Partial<FileImportMessage> = {}
|
|
): FileImportMessage => {
|
|
const defaults: FileImportMessage = {
|
|
modelId: cryptoRandomString({ length: 10 }),
|
|
projectId: cryptoRandomString({ length: 10 }),
|
|
fileType: cryptoRandomString({ length: 10 }),
|
|
fileName: cryptoRandomString({ length: 10 }),
|
|
blobId: cryptoRandomString({ length: 10 }),
|
|
userId: cryptoRandomString({ length: 10 }),
|
|
jobId: cryptoRandomString({ length: 10 })
|
|
}
|
|
|
|
return assign(defaults, override)
|
|
}
|
|
|
|
export const buildFileUploadRecord = (
|
|
overrides: Partial<FileUploadRecord & FileUploadRecordV2>
|
|
): FileUploadRecord & FileUploadRecordV2 => {
|
|
const id =
|
|
overrides.projectId || overrides.streamId || cryptoRandomString({ length: 10 })
|
|
const defaults: FileUploadRecord & FileUploadRecordV2 = {
|
|
id: cryptoRandomString({ length: 10 }),
|
|
branchName: cryptoRandomString({ length: 10 }),
|
|
convertedStatus: FileUploadConvertedStatus.Completed,
|
|
metadata: null,
|
|
convertedCommitId: cryptoRandomString({ length: 10 }),
|
|
convertedLastUpdate: new Date(),
|
|
convertedMessage: null,
|
|
uploadDate: new Date(),
|
|
uploadComplete: false,
|
|
projectId: id,
|
|
streamId: id,
|
|
fileName: cryptoRandomString({ length: 10 }),
|
|
fileType: cryptoRandomString({ length: 10 }),
|
|
fileSize: randomInt(1, 1e6),
|
|
userId: cryptoRandomString({ length: 10 }),
|
|
modelId: cryptoRandomString({ length: 10 })
|
|
}
|
|
|
|
return assign(defaults, overrides)
|
|
}
|