Files
speckle-server/packages/server/modules/previews/domain/operations.ts
T
2024-09-13 16:38:13 +03:00

43 lines
1.0 KiB
TypeScript

import { ObjectPreview } from '@/modules/previews/domain/types'
import { Nullable, Optional } from '@speckle/shared'
import express from 'express'
export type GetObjectPreviewInfo = (params: {
streamId: string
objectId: string
}) => Promise<Optional<ObjectPreview>>
export type CreateObjectPreview = (
params: Pick<ObjectPreview, 'streamId' | 'objectId' | 'priority'>
) => Promise<void>
export type GetPreviewImage = (params: {
previewId: string
}) => Promise<Nullable<Buffer>>
export type GetObjectPreviewBufferOrFilepath = (params: {
streamId: string
objectId: string
angle?: string
}) => Promise<
| {
type: 'file'
file: string
error?: true
errorCode?: string
}
| { type: 'buffer'; buffer: Buffer; error?: true; errorCode?: string }
>
export type SendObjectPreview = (
req: express.Request,
res: express.Response,
streamId: string,
objectId: string,
angle: string
) => Promise<void>
export type CheckStreamPermissions = (
req: express.Request
) => Promise<{ hasPermissions: boolean; httpErrorCode: number }>