From eed1a863d37d402851cf3489803f068f91e1d883 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Mon, 27 Nov 2023 13:45:20 +0700 Subject: [PATCH] refactor: .env compat --- Services/server/src/controllers/searchController.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Services/server/src/controllers/searchController.ts b/Services/server/src/controllers/searchController.ts index 99de738..dea0d8e 100644 --- a/Services/server/src/controllers/searchController.ts +++ b/Services/server/src/controllers/searchController.ts @@ -1,23 +1,29 @@ -import { Body, Controller, Post, Route, SuccessResponse, Tags } from "tsoa"; +import { Body, Controller, Post, Route, Security, SuccessResponse, Tags } from "tsoa"; import HttpStatusCode from "../interfaces/http-status"; import esClient from "../elasticsearch"; import { Search } from "../interfaces/search"; import { EhrFile } from "../interfaces/ehr-fs"; +const DEFAULT_INDEX = process.env.ELASTICSEARCH_INDEX; + +if (!DEFAULT_INDEX) throw Error("Default ElasticSearch index must be specified."); + @Route("/search") export class SearchController extends Controller { @Post("/") @Tags("Search") - @SuccessResponse(HttpStatusCode.OK) + @Security("bearerAuth") + @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") public async searchFile(@Body() search: Search): Promise { const result = await esClient.search }>({ - index: process.env.ELASTICSEARCH_INDEX ?? "ehr-index", + index: DEFAULT_INDEX, query: { bool: { must: search.AND?.map((v) => ({ match: { [v.field]: v.value } })), should: search.OR?.map((v) => ({ match: { [v.field]: v.value } })), }, }, + size: 10000, }); return result.hits.hits.length > 0