From d0d587e9662331f4765a7acd3d000ddcf0bcf3d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=ED=9D=A0?= Date: Tue, 30 Aug 2022 20:47:56 +0900 Subject: [PATCH] =?UTF-8?q?NestJS=20=EC=88=98=EC=A0=951..?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/todo/todo.controller.ts | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/todo/todo.controller.ts b/src/todo/todo.controller.ts index fb267ce..569abec 100644 --- a/src/todo/todo.controller.ts +++ b/src/todo/todo.controller.ts @@ -30,20 +30,38 @@ export class TodoController { console.log(filterSql) //Field별 search OR Sql용 - const searchFieldSQL = [] - for (const index in query.searchFields) { - const temp = { - [query.searchFields[index]]: { contains: query.search as string } + let searchSql = {} + if (query.search) { + const searchFieldSQL = [] + for (const index in query.searchFields) { + switch (query.searchFields[index]) { + case 'title': + case 'content': + searchFieldSQL.push({ + [query.searchFields[index]]: { + contains: query.search as string + } + }) + break + case 'updatedAt': + case 'createdAt': + searchFieldSQL.push({ + [query.searchFields[index]]: { + gte: new Date(query.search) as Date + } + }) + break + } + console.log(searchFieldSQL) } - searchFieldSQL.push(temp) + searchSql = { OR: searchFieldSQL } + console.log(searchSql) } - const searchSql = query.search ? { OR: searchFieldSQL } : {} - console.log(searchSql) const orderBySql = { [query.sortBy]: query.sortDesc === 'true' ? 'desc' : 'asc' } - console.log(searchSql) + console.log(orderBySql) //fetch SQL용 const page = query.page