@@ -13,6 +13,7 @@ const { updateUserStatusOnTaskUpdate, updateStatusOnTaskCompletion } = require("
13
13
const dataAccess = require ( "../services/dataAccessLayer" ) ;
14
14
const { parseSearchQuery } = require ( "../utils/tasks" ) ;
15
15
const { addTaskCreatedAtAndUpdatedAtFields } = require ( "../services/tasks" ) ;
16
+ const tasksService = require ( "../services/tasks" ) ;
16
17
const { RQLQueryParser } = require ( "../utils/RQLParser" ) ;
17
18
const { getMissedProgressUpdatesUsers } = require ( "../models/discordactions" ) ;
18
19
const { logType } = require ( "../constants/logs" ) ;
@@ -134,7 +135,19 @@ const fetchPaginatedTasks = async (query) => {
134
135
135
136
const fetchTasks = async ( req , res ) => {
136
137
try {
137
- const { status, page, size, prev, next, q : queryString , assignee, title, userFeatureFlag } = req . query ;
138
+ const {
139
+ status,
140
+ page,
141
+ size,
142
+ prev,
143
+ next,
144
+ q : queryString ,
145
+ assignee,
146
+ title,
147
+ userFeatureFlag,
148
+ orphaned,
149
+ dev,
150
+ } = req . query ;
138
151
const transformedQuery = transformQuery ( status , size , page , assignee , title ) ;
139
152
140
153
if ( queryString !== undefined ) {
@@ -159,6 +172,28 @@ const fetchTasks = async (req, res) => {
159
172
} ) ;
160
173
}
161
174
175
+ const isOrphaned = orphaned === "true" ;
176
+ const isDev = dev === "true" ;
177
+ if ( isOrphaned ) {
178
+ if ( ! isDev ) {
179
+ return res . boom . notFound ( "Route not found" ) ;
180
+ }
181
+ try {
182
+ const orphanedTasks = await tasksService . fetchOrphanedTasks ( ) ;
183
+ if ( ! orphanedTasks || orphanedTasks . length === 0 ) {
184
+ return res . sendStatus ( 204 ) ;
185
+ }
186
+ const tasksWithRdsAssigneeInfo = await fetchTasksWithRdsAssigneeInfo ( orphanedTasks ) ;
187
+ return res . status ( 200 ) . json ( {
188
+ message : "Orphan tasks fetched successfully" ,
189
+ data : tasksWithRdsAssigneeInfo ,
190
+ } ) ;
191
+ } catch ( error ) {
192
+ logger . error ( "Error in getting tasks which were orphaned" , error ) ;
193
+ return res . boom . badImplementation ( INTERNAL_SERVER_ERROR ) ;
194
+ }
195
+ }
196
+
162
197
const paginatedTasks = await fetchPaginatedTasks ( { ...transformedQuery , prev, next, userFeatureFlag } ) ;
163
198
return res . json ( {
164
199
message : "Tasks returned successfully!" ,
0 commit comments