feat: bulk change description ()

Co-authored-by: Tamas Koos <ext_tamas.koos@btrl.ro>
This commit is contained in:
koostamas 2025-05-17 12:17:00 +02:00 committed by GitHub
parent fa45a26cff
commit b63d6cdcd6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 122 additions and 9 deletions
server/src

View file

@ -54,6 +54,10 @@ export class UpdateAssetBase {
@Max(5)
@Min(-1)
rating?: number;
@Optional()
@IsString()
description?: string;
}
export class AssetBulkUpdateDto extends UpdateAssetBase {
@ -65,10 +69,6 @@ export class AssetBulkUpdateDto extends UpdateAssetBase {
}
export class UpdateAssetDto extends UpdateAssetBase {
@Optional()
@IsString()
description?: string;
@ValidateUUID({ optional: true, nullable: true })
livePhotoVideoId?: string | null;
}

View file

@ -108,13 +108,21 @@ export class AssetService extends BaseService {
}
async updateAll(auth: AuthDto, dto: AssetBulkUpdateDto): Promise<void> {
const { ids, dateTimeOriginal, latitude, longitude, ...options } = dto;
const { ids, description, dateTimeOriginal, latitude, longitude, ...options } = dto;
await this.requireAccess({ auth, permission: Permission.ASSET_UPDATE, ids });
if (dateTimeOriginal !== undefined || latitude !== undefined || longitude !== undefined) {
await this.assetRepository.updateAllExif(ids, { dateTimeOriginal, latitude, longitude });
if (
description !== undefined ||
dateTimeOriginal !== undefined ||
latitude !== undefined ||
longitude !== undefined
) {
await this.assetRepository.updateAllExif(ids, { description, dateTimeOriginal, latitude, longitude });
await this.jobRepository.queueAll(
ids.map((id) => ({ name: JobName.SIDECAR_WRITE, data: { id, dateTimeOriginal, latitude, longitude } })),
ids.map((id) => ({
name: JobName.SIDECAR_WRITE,
data: { id, description, dateTimeOriginal, latitude, longitude },
})),
);
}