69 lines
2.1 KiB
TypeScript
69 lines
2.1 KiB
TypeScript
import { Controller, Get, HttpCode, HttpException, Next, Param, ParseUUIDPipe, Put, Query, Req, Res, UseInterceptors } from "@nestjs/common";
|
|
import { SearchService } from "../../core/services/common/search.service";
|
|
import { PageInterceptor } from "src/core/interceptors/page.interceptor";
|
|
import { SearchResultDto } from "src/core/domain/dtos/search-result.dto";
|
|
import { ApiOperation, ApiResponse } from "@nestjs/swagger";
|
|
import { RequestDto } from "src/core/domain/dtos/request.dto";
|
|
|
|
/**
|
|
* /papers/ route controller
|
|
*/
|
|
@Controller({
|
|
version: '1',
|
|
path: 'papers',
|
|
})
|
|
export class PapersController {
|
|
constructor(private searchService: SearchService) {}
|
|
|
|
/**
|
|
* Request handler for: GET /papers/search
|
|
* @param query
|
|
* @param response
|
|
* @returns a response with a set of matching papers
|
|
*/
|
|
@ApiOperation({ summary: 'Finds papers by context based on the query.' })
|
|
@ApiResponse({
|
|
status: 200,
|
|
description: 'Returns back acquired papers.',
|
|
type: SearchResultDto,
|
|
})
|
|
@Get('search')
|
|
@UseInterceptors(PageInterceptor)
|
|
@HttpCode(200)
|
|
getByContext(@Req() query: RequestDto): object {
|
|
return this.searchService.findByContext(query.es_query).then(
|
|
(response: SearchResultDto) => {
|
|
return response.data;
|
|
},
|
|
(error) => {
|
|
throw error;
|
|
}
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Request handler for GET /papers/{uuid}
|
|
* @param uuid
|
|
* @param response
|
|
* @returns a response with a requested object
|
|
*/
|
|
@ApiOperation({ summary: 'Finds paper by its UUID.' })
|
|
@ApiResponse({
|
|
status: 200,
|
|
description: 'Returns back acquired paper.',
|
|
type: SearchResultDto,
|
|
})
|
|
@Get(':uuid')
|
|
@UseInterceptors(PageInterceptor)
|
|
@HttpCode(200)
|
|
getByID(@Param('uuid', ParseUUIDPipe) uuid: string): object {
|
|
return this.searchService.findByID(uuid).then(
|
|
(response: SearchResultDto) => {
|
|
return response.data;
|
|
},
|
|
(error) => {
|
|
throw error;
|
|
}
|
|
);
|
|
}
|
|
} |