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