chore(server): return duplicate assets as group (#9576)

* chore(server): return duplicate assets as group

* file name
This commit is contained in:
Alex 2024-05-18 13:15:56 -05:00 committed by GitHub
parent 9aed736911
commit 60427f18ce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 28 additions and 5 deletions

View file

@ -50,6 +50,7 @@ export class AssetResponseDto extends SanitizedAssetResponseDto {
stack?: AssetResponseDto[];
@ApiProperty({ type: 'integer' })
stackCount!: number | null;
duplicateId?: string | null;
}
export type AssetMapOptions = {
@ -130,6 +131,7 @@ export function mapAsset(entity: AssetEntity, options: AssetMapOptions = {}): As
isExternal: false,
isReadOnly: false,
hasMetadata: true,
duplicateId: entity.duplicateId,
};
}

View file

@ -0,0 +1,19 @@
import { groupBy } from 'lodash';
import { AssetResponseDto } from 'src/dtos/asset-response.dto';
export class DuplicateResponseDto {
duplicateId!: string;
assets!: AssetResponseDto[];
}
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;
}