e334443919
* initial pagination impl * use limit + offset instead of take + skip * wip web pagination * working infinite scroll * update api * formatting * fix rebase * search refactor * re-add runtime config for vector search * fix rebase * fixes * useless omitBy * unnecessary handling * add sql decorator for `searchAssets` * fixed search builder * fixed sql * remove mock method * linting * fixed pagination * fixed unit tests * formatting * fix e2e tests * re-flatten search builder * refactor endpoints * clean up dto * refinements * don't break everything just yet * update openapi spec & sql * update api * linting * update sql * fixes * optimize web code * fix typing * add page limit * make limit based on asset count * increase limit * simpler import
39 lines
904 B
TypeScript
39 lines
904 B
TypeScript
import { ApiProperty } from '@nestjs/swagger';
|
|
import { AlbumResponseDto } from '../../album';
|
|
import { AssetResponseDto } from '../../asset';
|
|
|
|
class SearchFacetCountResponseDto {
|
|
@ApiProperty({ type: 'integer' })
|
|
count!: number;
|
|
value!: string;
|
|
}
|
|
|
|
class SearchFacetResponseDto {
|
|
fieldName!: string;
|
|
counts!: SearchFacetCountResponseDto[];
|
|
}
|
|
|
|
class SearchAlbumResponseDto {
|
|
@ApiProperty({ type: 'integer' })
|
|
total!: number;
|
|
@ApiProperty({ type: 'integer' })
|
|
count!: number;
|
|
items!: AlbumResponseDto[];
|
|
facets!: SearchFacetResponseDto[];
|
|
}
|
|
|
|
class SearchAssetResponseDto {
|
|
@ApiProperty({ type: 'integer' })
|
|
total!: number;
|
|
@ApiProperty({ type: 'integer' })
|
|
count!: number;
|
|
items!: AssetResponseDto[];
|
|
facets!: SearchFacetResponseDto[];
|
|
nextPage!: string | null;
|
|
}
|
|
|
|
export class SearchResponseDto {
|
|
albums!: SearchAlbumResponseDto;
|
|
assets!: SearchAssetResponseDto;
|
|
}
|