mirror of
https://github.com/immich-app/immich.git
synced 2025-06-17 04:27:44 -04:00
28 lines
698 B
TypeScript
28 lines
698 B
TypeScript
import { IsNotEmpty } from 'class-validator';
|
|
import { groupBy } from 'lodash';
|
|
import { AssetResponseDto } from 'src/dtos/asset-response.dto';
|
|
import { ValidateUUID } from 'src/validation';
|
|
|
|
export class DuplicateResponseDto {
|
|
duplicateId!: string;
|
|
assets!: AssetResponseDto[];
|
|
}
|
|
|
|
export class ResolveDuplicatesDto {
|
|
@IsNotEmpty()
|
|
@ValidateUUID({ each: true })
|
|
assetIds!: string[];
|
|
}
|
|
|
|
export function mapDuplicateResponse(assets: AssetResponseDto[]): DuplicateResponseDto[] {
|
|
const result = [];
|
|
|
|
const grouped = groupBy(assets, (a) => a.duplicateId);
|
|
|
|
for (const [duplicateId, assets] of Object.entries(grouped)) {
|
|
result.push({ duplicateId, assets });
|
|
}
|
|
|
|
return result;
|
|
}
|