@@ -53,11 +53,11 @@ export const syncWithIntra = async function(): Promise<void> {
5353 // - last successful sync timestamp (lastSync)
5454 // - active campuses
5555 // - 42 and piscine cursus (cursus/21,9)
56- await syncCampuses ( fast42Api ) ;
57- await syncCursusProjects ( fast42Api , '9' ) ;
58- await syncCursusProjects ( fast42Api , '21' ) ;
59- await syncUsers ( fast42Api ) ;
60- await syncProjectUsers ( fast42Api ) ;
56+ await syncCampuses ( fast42Api , now ) ;
57+ await syncCursusProjects ( fast42Api , '9' , now ) ;
58+ await syncCursusProjects ( fast42Api , '21' , now ) ;
59+ await syncUsers ( fast42Api , now ) ;
60+ await syncProjectUsers ( fast42Api , now ) ;
6161 await DatabaseService . saveSyncTimestamp ( "full" , 1 , now ) ;
6262
6363 console . info ( `Intra synchronization completed at ${ new Date ( ) . toISOString ( ) } .` ) ;
@@ -74,12 +74,10 @@ export const syncWithIntra = async function(): Promise<void> {
7474 * @param lastPullDate The date of the last synchronization
7575 * @returns A promise that resolves when the synchronization is complete
7676 */
77- async function syncCampuses ( fast42Api : Fast42 ) : Promise < void > {
77+ async function syncCampuses ( fast42Api : Fast42 , lastSync : Date | undefined ) : Promise < void > {
7878 let campusesApi ;
7979 try {
8080 log ( 2 , `Syncing campuses...` ) ;
81- let lastSyncRaw = await DatabaseService . getLastSyncTimestamp ( "full" , 1 ) ;
82- let lastSync : Date | undefined = lastSyncRaw === null ? undefined : lastSyncRaw ;
8381 campusesApi = await syncData ( fast42Api , new Date ( ) , lastSync , `/campus` , { 'active' : 'true' } ) ;
8482 const dbCampuses = campusesApi . map ( transformApiCampusToDb ) ;
8583 await DatabaseService . insertManyCampuses ( dbCampuses ) ;
@@ -96,7 +94,7 @@ async function syncCampuses(fast42Api: Fast42): Promise<void> {
9694 * @param lastPullDate The date of the last synchronization
9795 * @returns A promise that resolves when the synchronization is complete
9896 */
99- async function syncCursusProjects ( fast42Api : Fast42 , cursus : string ) : Promise < void > {
97+ async function syncCursusProjects ( fast42Api : Fast42 , cursus : string , syncDate : Date ) : Promise < void > {
10098 let pageIndex = 0 ;
10199 let hasMorePages = true ;
102100 let params : { [ key : string ] : string } = { 'page[size]' : '100' } ;
@@ -109,11 +107,10 @@ async function syncCursusProjects(fast42Api: Fast42, cursus: string): Promise<vo
109107 params [ 'page[number]' ] = pageIndex . toString ( ) ;
110108 let lastSyncRaw = await DatabaseService . getLastSyncTimestamp ( "cursus_projects" , parseInt ( cursus ) ) ;
111109 let lastSync : Date | undefined = lastSyncRaw === null ? undefined : lastSyncRaw ;
112- let syncDate = new Date ( ) ;
113110 if ( lastSync ) {
114111 params [ 'range[updated_at]' ] = `${ lastSync . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
115112 } else {
116- delete params [ 'range[updated_at]' ] ;
113+ params [ 'range[updated_at]' ] = ` ${ new Date ( 0 ) . toISOString ( ) } , ${ syncDate . toISOString ( ) } ` ;
117114 }
118115
119116 log ( 2 , `Fetching page ${ pageIndex } of projects...` ) ;
@@ -142,7 +139,7 @@ async function syncCursusProjects(fast42Api: Fast42, cursus: string): Promise<vo
142139 * @param fast42Api The Fast42 API instance to use for fetching user data
143140 * @param lastPullDate The date of the last synchronization
144141 */
145- async function syncUsers ( fast42Api : Fast42 ) : Promise < void > {
142+ async function syncUsers ( fast42Api : Fast42 , syncDate : Date ) : Promise < void > {
146143 let pageIndex = 0 ;
147144 let hasMorePages = true ;
148145 let params : { [ key : string ] : string } = { } ;
@@ -161,11 +158,10 @@ async function syncUsers(fast42Api: Fast42): Promise<void> {
161158 params [ 'page[number]' ] = pageIndex . toString ( ) ;
162159 let lastSyncRaw = await DatabaseService . getLastSyncTimestamp ( "campus_users" , campusId ) ;
163160 let lastSync : Date | undefined = lastSyncRaw === null ? undefined : lastSyncRaw ;
164- let syncDate = new Date ( ) ;
165161 if ( lastSync ) {
166162 params [ 'range[updated_at]' ] = `${ lastSync . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
167163 } else {
168- delete params [ 'range[updated_at]' ] ;
164+ params [ 'range[updated_at]' ] = ` ${ new Date ( 0 ) . toISOString ( ) } , ${ syncDate . toISOString ( ) } ` ;
169165 }
170166
171167 log ( 2 , `Fetching page ${ pageIndex } of users for campus ${ campusId } (${ index + 1 } /${ totalCampuses } )...` ) ;
@@ -206,7 +202,7 @@ async function syncUsers(fast42Api: Fast42): Promise<void> {
206202 * @param lastPullDate The date of the last synchronization
207203 * @returns A promise that resolves when the synchronization is complete
208204 */
209- async function syncProjectUsers ( fast42Api : Fast42 ) : Promise < void > {
205+ async function syncProjectUsers ( fast42Api : Fast42 , syncDate : Date ) : Promise < void > {
210206 let pageIndex = 0 ;
211207 let hasMorePages = true ;
212208 let params : { [ key : string ] : string } = { } ;
@@ -225,11 +221,10 @@ async function syncProjectUsers(fast42Api: Fast42): Promise<void> {
225221 params [ 'page[number]' ] = pageIndex . toString ( ) ;
226222 let lastSyncRaw = await DatabaseService . getLastSyncTimestamp ( "projects_projects_users" , projectId ) ;
227223 let lastSync : Date | undefined = lastSyncRaw === null ? undefined : lastSyncRaw ;
228- let syncDate = new Date ( ) ;
229224 if ( lastSync ) {
230225 params [ 'range[updated_at]' ] = `${ lastSync . toISOString ( ) } ,${ syncDate . toISOString ( ) } ` ;
231226 } else {
232- delete params [ 'range[updated_at]' ] ;
227+ params [ 'range[updated_at]' ] = ` ${ new Date ( 0 ) . toISOString ( ) } , ${ syncDate . toISOString ( ) } ` ;
233228 }
234229
235230 log ( 2 , `Fetching page ${ pageIndex } of projectUsers for project ${ projectId } (${ index + 1 } /${ totalProjects } )...` ) ;
0 commit comments