@@ -35,70 +35,82 @@ const requestTransition = async (
3535 const startDate = new Date ( startDateString )
3636 const endDate = new Date ( endDateString )
3737
38- const users = await userRepository . findAllCreatedBetween ( startDate , endDate )
38+ const usersCount = await userRepository . countAllCreatedBetween ( startDate , endDate )
3939
4040 const timestamp = timer . getTimestampInMicroseconds ( )
4141
4242 logger . info (
43- `[TRANSITION ${ timestamp } ] Found ${ users . length } users created between ${ startDateString } and ${ endDateString } ` ,
43+ `[TRANSITION ${ timestamp } ] Found ${ usersCount } users created between ${ startDateString } and ${ endDateString } ` ,
4444 )
4545
4646 let itemTransitionsTriggered = 0
4747 let revisionTransitionsTriggered = 0
4848 const forceRun = forceRunParam === 'true'
49- for ( const user of users ) {
50- const itemsTransitionStatus = await transitionStatusRepository . getStatus ( user . uuid , 'items' )
51- const revisionsTransitionStatus = await transitionStatusRepository . getStatus ( user . uuid , 'revisions' )
5249
53- const userRoles = await user . roles
50+ const pageLimit = 100
51+ const totalPages = Math . ceil ( usersCount / pageLimit )
52+ for ( let currentPage = 1 ; currentPage <= totalPages ; currentPage ++ ) {
53+ const users = await userRepository . findAllCreatedBetween ( {
54+ start : startDate ,
55+ end : endDate ,
56+ offset : ( currentPage - 1 ) * pageLimit ,
57+ limit : pageLimit ,
58+ } )
5459
55- const userHasTransitionRole = userRoles . some ( ( role ) => role . name === RoleName . NAMES . TransitionUser )
56- const bothTransitionStatusesAreVerified =
57- itemsTransitionStatus ?. value === TransitionStatus . STATUSES . Verified &&
58- revisionsTransitionStatus ?. value === TransitionStatus . STATUSES . Verified
60+ for ( const user of users ) {
61+ const itemsTransitionStatus = await transitionStatusRepository . getStatus ( user . uuid , 'items' )
62+ const revisionsTransitionStatus = await transitionStatusRepository . getStatus ( user . uuid , 'revisions' )
5963
60- if ( ! userHasTransitionRole && bothTransitionStatusesAreVerified ) {
61- continue
62- }
64+ const userRoles = await user . roles
6365
64- logger . info (
65- `[TRANSITION ${ timestamp } ] Transition status for user ${ user . uuid } - items status: ${ itemsTransitionStatus ?. value } , revisions status: ${ revisionsTransitionStatus ?. value } , has transition role: ${ userHasTransitionRole } ` ,
66- )
67-
68- if (
69- itemsTransitionStatus === null ||
70- itemsTransitionStatus . value === TransitionStatus . STATUSES . Failed ||
71- ( itemsTransitionStatus . value === TransitionStatus . STATUSES . InProgress && forceRun )
72- ) {
73- await transitionStatusRepository . remove ( user . uuid , 'items' )
74-
75- await domainEventPublisher . publish (
76- domainEventFactory . createTransitionRequestedEvent ( {
77- userUuid : user . uuid ,
78- type : 'items' ,
79- timestamp,
80- } ) ,
81- )
66+ const userHasTransitionRole = userRoles . some ( ( role ) => role . name === RoleName . NAMES . TransitionUser )
67+ const bothTransitionStatusesAreVerified =
68+ itemsTransitionStatus ?. value === TransitionStatus . STATUSES . Verified &&
69+ revisionsTransitionStatus ?. value === TransitionStatus . STATUSES . Verified
8270
83- itemTransitionsTriggered ++
84- }
71+ if ( ! userHasTransitionRole && bothTransitionStatusesAreVerified ) {
72+ continue
73+ }
8574
86- if (
87- revisionsTransitionStatus === null ||
88- revisionsTransitionStatus . value === TransitionStatus . STATUSES . Failed ||
89- ( revisionsTransitionStatus . value === TransitionStatus . STATUSES . InProgress && forceRun )
90- ) {
91- await transitionStatusRepository . remove ( user . uuid , 'revisions' )
92-
93- await domainEventPublisher . publish (
94- domainEventFactory . createTransitionRequestedEvent ( {
95- userUuid : user . uuid ,
96- type : 'revisions' ,
97- timestamp,
98- } ) ,
75+ logger . info (
76+ `[TRANSITION ${ timestamp } ] Transition status for user ${ user . uuid } - items status: ${ itemsTransitionStatus ?. value } , revisions status: ${ revisionsTransitionStatus ?. value } , has transition role: ${ userHasTransitionRole } ` ,
9977 )
10078
101- revisionTransitionsTriggered ++
79+ if (
80+ itemsTransitionStatus === null ||
81+ itemsTransitionStatus . value === TransitionStatus . STATUSES . Failed ||
82+ ( itemsTransitionStatus . value === TransitionStatus . STATUSES . InProgress && forceRun )
83+ ) {
84+ await transitionStatusRepository . remove ( user . uuid , 'items' )
85+
86+ await domainEventPublisher . publish (
87+ domainEventFactory . createTransitionRequestedEvent ( {
88+ userUuid : user . uuid ,
89+ type : 'items' ,
90+ timestamp,
91+ } ) ,
92+ )
93+
94+ itemTransitionsTriggered ++
95+ }
96+
97+ if (
98+ revisionsTransitionStatus === null ||
99+ revisionsTransitionStatus . value === TransitionStatus . STATUSES . Failed ||
100+ ( revisionsTransitionStatus . value === TransitionStatus . STATUSES . InProgress && forceRun )
101+ ) {
102+ await transitionStatusRepository . remove ( user . uuid , 'revisions' )
103+
104+ await domainEventPublisher . publish (
105+ domainEventFactory . createTransitionRequestedEvent ( {
106+ userUuid : user . uuid ,
107+ type : 'revisions' ,
108+ timestamp,
109+ } ) ,
110+ )
111+
112+ revisionTransitionsTriggered ++
113+ }
102114 }
103115 }
104116
0 commit comments