mirror of
https://github.com/immich-app/immich.git
synced 2024-12-29 15:11:58 +00:00
fix(server): include partner assets in random endpoint (#12599)
This commit is contained in:
parent
d03e97f650
commit
7b737786b3
3 changed files with 10 additions and 10 deletions
|
@ -175,7 +175,7 @@ export interface IAssetRepository {
|
|||
libraryId?: string,
|
||||
withDeleted?: boolean,
|
||||
): Paginated<AssetEntity>;
|
||||
getRandom(userId: string, count: number): Promise<AssetEntity[]>;
|
||||
getRandom(userIds: string[], count: number): Promise<AssetEntity[]>;
|
||||
getFirstAssetForAlbumId(albumId: string): Promise<AssetEntity | null>;
|
||||
getLastUpdatedAssetForAlbumId(albumId: string): Promise<AssetEntity | null>;
|
||||
getExternalLibraryAssetPaths(pagination: PaginationOptions, libraryId: string): Paginated<AssetPathEntity>;
|
||||
|
|
|
@ -623,14 +623,9 @@ export class AssetRepository implements IAssetRepository {
|
|||
return result;
|
||||
}
|
||||
|
||||
@GenerateSql({ params: [DummyValue.UUID, DummyValue.NUMBER] })
|
||||
getRandom(ownerId: string, count: number): Promise<AssetEntity[]> {
|
||||
const builder = this.getBuilder({
|
||||
userIds: [ownerId],
|
||||
exifInfo: true,
|
||||
});
|
||||
|
||||
return builder.orderBy('RANDOM()').limit(count).getMany();
|
||||
@GenerateSql({ params: [[DummyValue.UUID], DummyValue.NUMBER] })
|
||||
getRandom(userIds: string[], count: number): Promise<AssetEntity[]> {
|
||||
return this.getBuilder({ userIds, exifInfo: true }).orderBy('RANDOM()').limit(count).getMany();
|
||||
}
|
||||
|
||||
@GenerateSql({ params: [{ size: TimeBucketSize.MONTH }] })
|
||||
|
|
|
@ -98,7 +98,12 @@ export class AssetService {
|
|||
}
|
||||
|
||||
async getRandom(auth: AuthDto, count: number): Promise<AssetResponseDto[]> {
|
||||
const assets = await this.assetRepository.getRandom(auth.user.id, count);
|
||||
const partnerIds = await getMyPartnerIds({
|
||||
userId: auth.user.id,
|
||||
repository: this.partnerRepository,
|
||||
timelineEnabled: true,
|
||||
});
|
||||
const assets = await this.assetRepository.getRandom([auth.user.id, ...partnerIds], count);
|
||||
return assets.map((a) => mapAsset(a, { auth }));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue