5ad4e5b614
* fix: add correct relations to asset typeorm entity * fix: add missing createdAt column to asset entity * ci: run check to make sure generated API is up-to-date * ci: cancel workflows that aren't for the latest commit in a branch * chore: add fvm config for flutter
61 lines
1.3 KiB
TypeScript
61 lines
1.3 KiB
TypeScript
import { AssetType } from '@app/infra';
|
|
import { ApiProperty } from '@nestjs/swagger';
|
|
import { IsBoolean, IsEnum, IsNotEmpty, IsOptional } from 'class-validator';
|
|
import { ImmichFile } from '../../../config/asset-upload.config';
|
|
|
|
export class CreateAssetDto {
|
|
@IsNotEmpty()
|
|
deviceAssetId!: string;
|
|
|
|
@IsNotEmpty()
|
|
deviceId!: string;
|
|
|
|
@IsNotEmpty()
|
|
@IsEnum(AssetType)
|
|
@ApiProperty({ enumName: 'AssetTypeEnum', enum: AssetType })
|
|
assetType!: AssetType;
|
|
|
|
@IsNotEmpty()
|
|
fileCreatedAt!: string;
|
|
|
|
@IsNotEmpty()
|
|
fileModifiedAt!: string;
|
|
|
|
@IsNotEmpty()
|
|
isFavorite!: boolean;
|
|
|
|
@IsOptional()
|
|
@IsBoolean()
|
|
isVisible?: boolean;
|
|
|
|
@IsNotEmpty()
|
|
fileExtension!: string;
|
|
|
|
@IsOptional()
|
|
duration?: string;
|
|
|
|
// The properties below are added to correctly generate the API docs
|
|
// and client SDKs. Validation should be handled in the controller.
|
|
@ApiProperty({ type: 'string', format: 'binary' })
|
|
assetData!: any;
|
|
|
|
@ApiProperty({ type: 'string', format: 'binary' })
|
|
livePhotoData?: any;
|
|
}
|
|
|
|
export interface UploadFile {
|
|
mimeType: string;
|
|
checksum: Buffer;
|
|
originalPath: string;
|
|
originalName: string;
|
|
}
|
|
|
|
export function mapToUploadFile(file: ImmichFile): UploadFile {
|
|
return {
|
|
checksum: file.checksum,
|
|
mimeType: file.mimetype,
|
|
originalPath: file.path,
|
|
originalName: file.originalname,
|
|
};
|
|
}
|