@@ -13,6 +13,7 @@ const { updateUserStatusOnTaskUpdate, updateStatusOnTaskCompletion } = require("
1313const dataAccess = require ( "../services/dataAccessLayer" ) ;
1414const { parseSearchQuery } = require ( "../utils/tasks" ) ;
1515const { addTaskCreatedAtAndUpdatedAtFields } = require ( "../services/tasks" ) ;
16+ const tasksService = require ( "../services/tasks" ) ;
1617const { RQLQueryParser } = require ( "../utils/RQLParser" ) ;
1718const { getMissedProgressUpdatesUsers } = require ( "../models/discordactions" ) ;
1819const { logType } = require ( "../constants/logs" ) ;
@@ -134,7 +135,19 @@ const fetchPaginatedTasks = async (query) => {
134135
135136const fetchTasks = async ( req , res ) => {
136137 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 ;
138151 const transformedQuery = transformQuery ( status , size , page , assignee , title ) ;
139152
140153 if ( queryString !== undefined ) {
@@ -159,6 +172,28 @@ const fetchTasks = async (req, res) => {
159172 } ) ;
160173 }
161174
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+
162197 const paginatedTasks = await fetchPaginatedTasks ( { ...transformedQuery , prev, next, userFeatureFlag } ) ;
163198 return res . json ( {
164199 message : "Tasks returned successfully!" ,
0 commit comments