@@ -758,15 +758,21 @@ async function assignReviewers(req, res, next) {
758758 const REVIEWER_NAMES = req . body . names ;
759759 console . log ( 'Reviewer names:' , REVIEWER_NAMES ) ;
760760
761- const cutoff = new Date ( '2025-11-27T17:23 :59.000Z' ) ; // EDIT: set your desired cutoff date here
761+ const cutoff = new Date ( '2025-11-17T23:59 :59.000Z' ) ; // EDIT: set your desired cutoff date here
762762 const cutoffObjectId = new ObjectId ( Math . floor ( cutoff . getTime ( ) / 1000 ) . toString ( 16 ) + "0000000000000000" ) ;
763763
764764 const hackerModel = require ( '../models/hacker.model' ) ;
765765
766766 // find all hackers created before the cutoff date
767767 const hackers = await hackerModel . find ( {
768+ $or : [
769+ { reviewerStatus : 'None' } ,
770+ { reviewerStatus2 : 'None' } ,
771+ { reviewerStatus : { $exists : false } } ,
772+ { reviewerStatus2 : { $exists : false } }
773+ ] ,
768774 _id : { $lte : cutoffObjectId }
769- } ) . select ( '_id' ) ;
775+ } ) . select ( '_id reviewerStatus reviewerStatus2 accountId reviewerName reviewerName2 ' ) ;
770776
771777 console . log ( 'Found hackers:' , hackers . length ) ;
772778
@@ -795,14 +801,37 @@ async function assignReviewers(req, res, next) {
795801
796802 // assign reviewers to hackers
797803 for ( const hacker of hackers ) {
798- const assignedReviewer1 = REVIEWER_NAMES [ hackerIndex % revwiewerCount ] ;
799- const assignedReviewer2 = REVIEWER_NAMES [ ( hackerIndex + 1 ) % revwiewerCount ] ;
800-
801- assignments . push ( { hackerId : hacker . _id , reviewer : assignedReviewer1 , reviewer2 : assignedReviewer2 } ) ;
804+ let assignedReviewer1 = REVIEWER_NAMES [ hackerIndex % revwiewerCount ] ;
805+ let assignedReviewer2 = REVIEWER_NAMES [ ( hackerIndex + 1 ) % revwiewerCount ] ;
802806
803- updatePromises . push (
804- Services . Hacker . updateOne ( hacker . _id , { reviewerName : assignedReviewer1 , reviewerName2 : assignedReviewer2 } )
805- ) ;
807+ if ( hacker . reviewerStatus !== HACKER_REVIEWER_STATUS_NONE && ( "reviewerStatus" in hacker ) ) {
808+ if ( hacker . reviewerName === assignedReviewer2 ) {
809+ assignedReviewer2 = assignedReviewer1 ;
810+ }
811+
812+ assignments . push ( { hackerId : hacker . _id , reviewer2 : assignedReviewer2 } ) ;
813+
814+ updatePromises . push (
815+ Services . Hacker . updateOne ( hacker . _id , { reviewerName2 : assignedReviewer2 } )
816+ ) ;
817+ } else if ( hacker . reviewerStatus2 !== HACKER_REVIEWER_STATUS_NONE && ( "reviewerStatus2" in hacker ) ) {
818+
819+ if ( hacker . reviewerName2 === assignedReviewer1 ) {
820+ assignedReviewer1 = assignedReviewer2 ;
821+ }
822+
823+ assignments . push ( { hackerId : hacker . _id , reviewer : assignedReviewer1 } ) ;
824+
825+ updatePromises . push (
826+ Services . Hacker . updateOne ( hacker . _id , { reviewerName : assignedReviewer1 } )
827+ ) ;
828+ } else {
829+ assignments . push ( { hackerId : hacker . _id , reviewer : assignedReviewer1 , reviewer2 : assignedReviewer2 } ) ;
830+
831+ updatePromises . push (
832+ Services . Hacker . updateOne ( hacker . _id , { reviewerName : assignedReviewer1 , reviewerName2 : assignedReviewer2 } )
833+ ) ;
834+ }
806835
807836 hackerIndex ++ ;
808837 }
0 commit comments