forked from Cutlery/immich
response dto
This commit is contained in:
parent
a28330adf6
commit
7aa98162af
@ -83,6 +83,12 @@ export class AlbumCountResponseDto {
|
|||||||
notShared!: number;
|
notShared!: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class SubAlbumResponseDto {
|
||||||
|
id!: string;
|
||||||
|
albumName!: string;
|
||||||
|
albumThumbnailAssetId!: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
export class AlbumResponseDto {
|
export class AlbumResponseDto {
|
||||||
id!: string;
|
id!: string;
|
||||||
ownerId!: string;
|
ownerId!: string;
|
||||||
@ -105,6 +111,9 @@ export class AlbumResponseDto {
|
|||||||
@Optional()
|
@Optional()
|
||||||
@ApiProperty({ enumName: 'AssetOrder', enum: AssetOrder })
|
@ApiProperty({ enumName: 'AssetOrder', enum: AssetOrder })
|
||||||
order?: AssetOrder;
|
order?: AssetOrder;
|
||||||
|
|
||||||
|
parentAlbums?: SubAlbumResponseDto[];
|
||||||
|
childAlbums?: SubAlbumResponseDto[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export const mapAlbum = (entity: AlbumEntity, withAssets: boolean, auth?: AuthDto): AlbumResponseDto => {
|
export const mapAlbum = (entity: AlbumEntity, withAssets: boolean, auth?: AuthDto): AlbumResponseDto => {
|
||||||
@ -146,6 +155,16 @@ export const mapAlbum = (entity: AlbumEntity, withAssets: boolean, auth?: AuthDt
|
|||||||
assetCount: entity.assets?.length || 0,
|
assetCount: entity.assets?.length || 0,
|
||||||
isActivityEnabled: entity.isActivityEnabled,
|
isActivityEnabled: entity.isActivityEnabled,
|
||||||
order: entity.order,
|
order: entity.order,
|
||||||
|
parentAlbums: entity.parentAlbums?.map((album) => ({
|
||||||
|
id: album.id,
|
||||||
|
albumName: album.albumName,
|
||||||
|
albumThumbnailAssetId: album.albumThumbnailAssetId,
|
||||||
|
})),
|
||||||
|
childAlbums: entity.childAlbums?.map((album) => ({
|
||||||
|
id: album.id,
|
||||||
|
albumName: album.albumName,
|
||||||
|
albumThumbnailAssetId: album.albumThumbnailAssetId,
|
||||||
|
})),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { ActivityEntity } from 'src/entities/activity.entity';
|
import { ActivityEntity } from 'src/entities/activity.entity';
|
||||||
import { AlbumEntity } from 'src/entities/album.entity';
|
import { AlbumEntity, SubAlbumEntity } from 'src/entities/album.entity';
|
||||||
import { APIKeyEntity } from 'src/entities/api-key.entity';
|
import { APIKeyEntity } from 'src/entities/api-key.entity';
|
||||||
import { AssetFaceEntity } from 'src/entities/asset-face.entity';
|
import { AssetFaceEntity } from 'src/entities/asset-face.entity';
|
||||||
import { AssetJobStatusEntity } from 'src/entities/asset-job-status.entity';
|
import { AssetJobStatusEntity } from 'src/entities/asset-job-status.entity';
|
||||||
@ -40,6 +40,7 @@ export const entities = [
|
|||||||
SharedLinkEntity,
|
SharedLinkEntity,
|
||||||
SmartInfoEntity,
|
SmartInfoEntity,
|
||||||
SmartSearchEntity,
|
SmartSearchEntity,
|
||||||
|
SubAlbumEntity,
|
||||||
SystemConfigEntity,
|
SystemConfigEntity,
|
||||||
SystemMetadataEntity,
|
SystemMetadataEntity,
|
||||||
TagEntity,
|
TagEntity,
|
||||||
|
@ -3,7 +3,7 @@ import { InjectDataSource, InjectRepository } from '@nestjs/typeorm';
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { dataSource } from 'src/database.config';
|
import { dataSource } from 'src/database.config';
|
||||||
import { Chunked, ChunkedArray, DATABASE_PARAMETER_CHUNK_SIZE, DummyValue, GenerateSql } from 'src/decorators';
|
import { Chunked, ChunkedArray, DATABASE_PARAMETER_CHUNK_SIZE, DummyValue, GenerateSql } from 'src/decorators';
|
||||||
import { AlbumEntity } from 'src/entities/album.entity';
|
import { AlbumEntity, SubAlbumEntity } from 'src/entities/album.entity';
|
||||||
import { AssetEntity } from 'src/entities/asset.entity';
|
import { AssetEntity } from 'src/entities/asset.entity';
|
||||||
import { AlbumAsset, AlbumAssetCount, AlbumInfoOptions, IAlbumRepository } from 'src/interfaces/album.interface';
|
import { AlbumAsset, AlbumAssetCount, AlbumInfoOptions, IAlbumRepository } from 'src/interfaces/album.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
@ -16,6 +16,7 @@ export class AlbumRepository implements IAlbumRepository {
|
|||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(AssetEntity) private assetRepository: Repository<AssetEntity>,
|
@InjectRepository(AssetEntity) private assetRepository: Repository<AssetEntity>,
|
||||||
@InjectRepository(AlbumEntity) private repository: Repository<AlbumEntity>,
|
@InjectRepository(AlbumEntity) private repository: Repository<AlbumEntity>,
|
||||||
|
@InjectRepository(SubAlbumEntity) private subAlbumRepository: Repository<SubAlbumEntity>,
|
||||||
@InjectDataSource() private dataSource: DataSource,
|
@InjectDataSource() private dataSource: DataSource,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@ -26,6 +27,8 @@ export class AlbumRepository implements IAlbumRepository {
|
|||||||
sharedUsers: true,
|
sharedUsers: true,
|
||||||
assets: false,
|
assets: false,
|
||||||
sharedLinks: true,
|
sharedLinks: true,
|
||||||
|
parentAlbums: true,
|
||||||
|
childAlbums: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
const order: FindOptionsOrder<AlbumEntity> = {};
|
const order: FindOptionsOrder<AlbumEntity> = {};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user