@@ -102,18 +102,20 @@ async function syncCursusProjects(fast42Api: Fast42, cursus: string, syncDate: D
102102 let params : { [ key : string ] : string } = { 'page[size]' : '100' } ;
103103
104104 try {
105+ // Set up filters to be used for all pages
106+ const lastSyncRaw = await DatabaseService . getLastSyncTimestamp ( "cursus_projects" , parseInt ( cursus ) ) ;
107+ const lastSync : Date | undefined = lastSyncRaw === null ? undefined : lastSyncRaw ;
108+ if ( lastSync ) {
109+ params [ 'range[updated_at]' ] = `${ lastSync . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
110+ } else {
111+ params [ 'range[updated_at]' ] = `${ new Date ( 0 ) . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
112+ }
113+
105114 while ( hasMorePages ) {
106115 pageIndex ++ ;
107116
108- // Set pagination and last sync range
117+ // Set pagination
109118 params [ 'page[number]' ] = pageIndex . toString ( ) ;
110- let lastSyncRaw = await DatabaseService . getLastSyncTimestamp ( "cursus_projects" , parseInt ( cursus ) ) ;
111- let lastSync : Date | undefined = lastSyncRaw === null ? undefined : lastSyncRaw ;
112- if ( lastSync ) {
113- params [ 'range[updated_at]' ] = `${ lastSync . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
114- } else {
115- params [ 'range[updated_at]' ] = `${ new Date ( 0 ) . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
116- }
117119
118120 log ( 2 , `Fetching page ${ pageIndex } of projects...` ) ;
119121
@@ -122,7 +124,7 @@ async function syncCursusProjects(fast42Api: Fast42, cursus: string, syncDate: D
122124 log ( 2 , `No more projects found on page ${ pageIndex } . Stopping.` ) ;
123125 hasMorePages = false ;
124126 await DatabaseService . saveSyncTimestamp ( "cursus_projects" , parseInt ( cursus ) , syncDate ) ;
125- continue ;
127+ break ;
126128 }
127129
128130 log ( 2 , `Processing page ${ pageIndex } with ${ projectsData . length } projects...` ) ;
@@ -152,19 +154,21 @@ async function syncUsers(fast42Api: Fast42, syncDate: Date): Promise<void> {
152154 try {
153155 const totalCampuses = campusIds . length ;
154156 for ( let [ index , campusId ] of campusIds . entries ( ) ) {
157+ // Set up filters to be used for all pages
155158 params [ 'filter[primary_campus_id]' ] = campusId . toString ( ) ;
159+ const lastSyncRaw = await DatabaseService . getLastSyncTimestamp ( "campus_users" , campusId ) ;
160+ const lastSync : Date | undefined = lastSyncRaw === null ? undefined : lastSyncRaw ;
161+ if ( lastSync ) {
162+ params [ 'range[updated_at]' ] = `${ lastSync . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
163+ } else {
164+ params [ 'range[updated_at]' ] = `${ new Date ( 0 ) . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
165+ }
166+
156167 while ( hasMorePages ) {
157168 pageIndex ++ ;
158169
159- // Set pagination and last sync range
170+ // Set pagination
160171 params [ 'page[number]' ] = pageIndex . toString ( ) ;
161- let lastSyncRaw = await DatabaseService . getLastSyncTimestamp ( "campus_users" , campusId ) ;
162- let lastSync : Date | undefined = lastSyncRaw === null ? undefined : lastSyncRaw ;
163- if ( lastSync ) {
164- params [ 'range[updated_at]' ] = `${ lastSync . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
165- } else {
166- params [ 'range[updated_at]' ] = `${ new Date ( 0 ) . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
167- }
168172
169173 log ( 2 , `Fetching page ${ pageIndex } of users for campus ${ campusId } (${ index + 1 } /${ totalCampuses } )...` ) ;
170174
@@ -216,18 +220,20 @@ async function syncProjectUsers(fast42Api: Fast42, syncDate: Date): Promise<void
216220 try {
217221 const totalProjects = projectIds . length ;
218222 for ( let [ index , projectId ] of projectIds . entries ( ) ) {
223+ // Set up filters to be used for all pages
224+ const lastSyncRaw = await DatabaseService . getLastSyncTimestamp ( "projects_projects_users" , projectId ) ;
225+ const lastSync : Date | undefined = lastSyncRaw === null ? undefined : lastSyncRaw ;
226+ if ( lastSync ) {
227+ params [ 'range[updated_at]' ] = `${ lastSync . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
228+ } else {
229+ params [ 'range[updated_at]' ] = `${ new Date ( 0 ) . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
230+ }
231+
219232 while ( hasMorePages ) {
220233 pageIndex ++ ;
221234
222- // Set pagination and last sync range
235+ // Set pagination
223236 params [ 'page[number]' ] = pageIndex . toString ( ) ;
224- let lastSyncRaw = await DatabaseService . getLastSyncTimestamp ( "projects_projects_users" , projectId ) ;
225- let lastSync : Date | undefined = lastSyncRaw === null ? undefined : lastSyncRaw ;
226- if ( lastSync ) {
227- params [ 'range[updated_at]' ] = `${ lastSync . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
228- } else {
229- params [ 'range[updated_at]' ] = `${ new Date ( 0 ) . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
230- }
231237
232238 log ( 2 , `Fetching page ${ pageIndex } of projectUsers for project ${ projectId } (${ index + 1 } /${ totalProjects } )...` ) ;
233239
0 commit comments