@@ -11,6 +11,7 @@ const { transformQuery } = require("../utils/tasks");
11
11
const { getPaginatedLink } = require ( "../utils/helper" ) ;
12
12
const { updateUserStatusOnTaskUpdate, updateStatusOnTaskCompletion } = require ( "../models/userStatus" ) ;
13
13
const dataAccess = require ( "../services/dataAccessLayer" ) ;
14
+ const { parseSearchQuery } = require ( "../utils/tasks" ) ;
14
15
/**
15
16
* Creates new task
16
17
*
@@ -128,7 +129,7 @@ const fetchPaginatedTasks = async (query) => {
128
129
129
130
const fetchTasks = async ( req , res ) => {
130
131
try {
131
- const { dev, status, page, size, prev, next } = req . query ;
132
+ const { dev, status, page, size, prev, next, q : queryString } = req . query ;
132
133
const transformedQuery = transformQuery ( dev , status , size , page ) ;
133
134
134
135
if ( dev ) {
@@ -139,12 +140,33 @@ const fetchTasks = async (req, res) => {
139
140
} ) ;
140
141
}
141
142
143
+ if ( queryString !== undefined ) {
144
+ const searchParams = parseSearchQuery ( queryString ) ;
145
+ const filterTasks = await tasks . fetchTasks ( searchParams . searchTerm ) ;
146
+ const tasksWithRdsAssigneeInfo = await fetchTasksWithRdsAssigneeInfo ( filterTasks ) ;
147
+ if ( tasksWithRdsAssigneeInfo . length === 0 ) {
148
+ return res . status ( 404 ) . json ( {
149
+ message : "No tasks found." ,
150
+ tasks : [ ] ,
151
+ } ) ;
152
+ }
153
+ return res . json ( {
154
+ message : "Filter tasks returned successfully!" ,
155
+ tasks : tasksWithRdsAssigneeInfo ,
156
+ } ) ;
157
+ }
158
+
142
159
const allTasks = await tasks . fetchTasks ( ) ;
143
160
const tasksWithRdsAssigneeInfo = await fetchTasksWithRdsAssigneeInfo ( allTasks ) ;
144
-
161
+ if ( tasksWithRdsAssigneeInfo . length === 0 ) {
162
+ return res . status ( 404 ) . json ( {
163
+ message : "No tasks found" ,
164
+ tasks : [ ] ,
165
+ } ) ;
166
+ }
145
167
return res . json ( {
146
168
message : "Tasks returned successfully!" ,
147
- tasks : tasksWithRdsAssigneeInfo . length > 0 ? tasksWithRdsAssigneeInfo : [ ] ,
169
+ tasks : tasksWithRdsAssigneeInfo ,
148
170
} ) ;
149
171
} catch ( err ) {
150
172
logger . error ( `Error while fetching tasks ${ err } ` ) ;
0 commit comments