mirror of
https://github.com/bookorbit/bookorbit.git
synced 2026-11-03 00:11:37 -06:00
26712eb02a
Derive catalog typeahead values only from books in libraries the requester can access, and enforce their content filters. Preserve superuser visibility, exact-match ranking, and user-scoped collection lookup.
52 lines
1.8 KiB
TypeScript
52 lines
1.8 KiB
TypeScript
import { Controller, Get, Query } from '@nestjs/common';
|
|
|
|
import { CurrentUser } from '../../common/decorators/current-user.decorator';
|
|
import type { RequestUser } from '../../common/types/request-user';
|
|
import { SearchCatalogQueryDto } from './dto/search-catalog-query.dto';
|
|
import { CatalogService } from './catalog.service';
|
|
|
|
@Controller('metadata')
|
|
export class CatalogController {
|
|
constructor(private readonly catalogService: CatalogService) {}
|
|
|
|
@Get('authors')
|
|
searchAuthors(@CurrentUser() user: RequestUser, @Query() query: SearchCatalogQueryDto) {
|
|
return this.catalogService.searchAuthors(user, query.q);
|
|
}
|
|
|
|
@Get('genres')
|
|
searchGenres(@CurrentUser() user: RequestUser, @Query() query: SearchCatalogQueryDto) {
|
|
return this.catalogService.searchGenres(user, query.q);
|
|
}
|
|
|
|
@Get('tags')
|
|
searchTags(@CurrentUser() user: RequestUser, @Query() query: SearchCatalogQueryDto) {
|
|
return this.catalogService.searchTags(user, query.q);
|
|
}
|
|
|
|
@Get('narrators')
|
|
searchNarrators(@CurrentUser() user: RequestUser, @Query() query: SearchCatalogQueryDto) {
|
|
return this.catalogService.searchNarrators(user, query.q);
|
|
}
|
|
|
|
@Get('publishers')
|
|
searchPublishers(@CurrentUser() user: RequestUser, @Query() query: SearchCatalogQueryDto) {
|
|
return this.catalogService.searchPublishers(user, query.q);
|
|
}
|
|
|
|
@Get('series')
|
|
searchSeries(@CurrentUser() user: RequestUser, @Query() query: SearchCatalogQueryDto) {
|
|
return this.catalogService.searchSeries(user, query.q);
|
|
}
|
|
|
|
@Get('languages')
|
|
searchLanguages(@CurrentUser() user: RequestUser, @Query() query: SearchCatalogQueryDto) {
|
|
return this.catalogService.searchLanguages(user, query.q);
|
|
}
|
|
|
|
@Get('collections')
|
|
searchCollections(@CurrentUser() user: RequestUser, @Query() query: SearchCatalogQueryDto) {
|
|
return this.catalogService.searchCollections(user.id, query.q);
|
|
}
|
|
}
|