47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import {
|
|
ProjectFileImportUpdatedMessageType,
|
|
ProjectPendingModelsUpdatedMessageType,
|
|
ProjectPendingVersionsUpdatedMessageType
|
|
} from '@/modules/core/graph/generated/graphql'
|
|
import { getStreamBranchByName } from '@/modules/core/repositories/branches'
|
|
import {
|
|
saveUploadFile,
|
|
SaveUploadFileInput
|
|
} from '@/modules/fileuploads/repositories/fileUploads'
|
|
import { FileImportSubscriptions, publish } from '@/modules/shared/utils/subscriptions'
|
|
|
|
export async function insertNewUploadAndNotify(upload: SaveUploadFileInput) {
|
|
const branch = await getStreamBranchByName(upload.streamId, upload.branchName)
|
|
const file = await saveUploadFile(upload)
|
|
|
|
if (!branch) {
|
|
await publish(FileImportSubscriptions.ProjectPendingModelsUpdated, {
|
|
projectPendingModelsUpdated: {
|
|
id: file.id,
|
|
type: ProjectPendingModelsUpdatedMessageType.Created,
|
|
model: file
|
|
},
|
|
projectId: file.streamId
|
|
})
|
|
} else {
|
|
await publish(FileImportSubscriptions.ProjectPendingVersionsUpdated, {
|
|
projectPendingVersionsUpdated: {
|
|
id: file.id,
|
|
type: ProjectPendingVersionsUpdatedMessageType.Created,
|
|
version: file
|
|
},
|
|
projectId: file.streamId,
|
|
branchName: file.branchName
|
|
})
|
|
}
|
|
|
|
await publish(FileImportSubscriptions.ProjectFileImportUpdated, {
|
|
projectFileImportUpdated: {
|
|
id: file.id,
|
|
type: ProjectFileImportUpdatedMessageType.Created,
|
|
upload: file
|
|
},
|
|
projectId: file.streamId
|
|
})
|
|
}
|