@@ -31,36 +31,39 @@ export default async (data) => {
3131 const update = [ ] ;
3232 await Promise . all ( data . map ( async ( d ) => {
3333 const period = parseInt ( d . period , 10 ) ;
34- const { type, countBefore, changedIds } = d . types . find ( t => t . type === 'Gesetzgebung' || t . type === 'Antrag' ) ;
35- const group = groups . find ( c => c . period === period ) ;
36- const localGroup = group ? group . types . find ( ct => ct . type === type ) : null ;
37- const localCount = localGroup ? localGroup . count : 0 ;
38- // Append Changed IDs
39- update . concat ( changedIds ) ;
40- // Compare Counts Remote & Local
41- if ( countBefore > localCount ) {
42- // Find remote Procedure Updates
43- const { data : { procedureUpdates } } = await client . query ( {
44- query : getProcedureUpdates ,
45- variables : { period, type } ,
46- } ) ;
47- // Find local Procedure Updates
48- const localProcedureUpdates = await ProcedureModel . find (
49- { period, type } ,
50- { procedureId : 1 , bioUpdateAt : 1 } ,
51- ) ;
52- // Compare
53- procedureUpdates . forEach ( ( pu ) => {
54- const localData = localProcedureUpdates . find ( ld => ld . procedureId === pu . procedureId ) ;
55- if (
56- ! localData ||
57- ( pu . bioUpdateAt &&
58- new Date ( localData . bioUpdateAt ) . getTime ( ) !== new Date ( pu . bioUpdateAt ) . getTime ( ) )
59- ) {
60- update . push ( pu . procedureId ) ;
61- }
62- } ) ;
63- }
34+ const types = d . types . filter ( t => t . type === 'Gesetzgebung' || t . type === 'Antrag' ) ;
35+ await Promise . all ( types . map ( async ( t ) => {
36+ const { type, countBefore, changedIds } = t ;
37+ const group = groups . find ( c => c . period === period ) ;
38+ const localGroup = group ? group . types . find ( ct => ct . type === type ) : null ;
39+ const localCount = localGroup ? localGroup . count : 0 ;
40+ // Append Changed IDs
41+ update . concat ( changedIds ) ;
42+ // Compare Counts Remote & Local
43+ if ( countBefore > localCount ) {
44+ // Find remote Procedure Updates
45+ const { data : { procedureUpdates } } = await client . query ( {
46+ query : getProcedureUpdates ,
47+ variables : { period, type } ,
48+ } ) ;
49+ // Find local Procedure Updates
50+ const localProcedureUpdates = await ProcedureModel . find (
51+ { period, type } ,
52+ { procedureId : 1 , bioUpdateAt : 1 } ,
53+ ) ;
54+ // Compare
55+ procedureUpdates . forEach ( ( pu ) => {
56+ const localData = localProcedureUpdates . find ( ld => ld . procedureId === pu . procedureId ) ;
57+ if (
58+ ! localData ||
59+ ( pu . bioUpdateAt &&
60+ new Date ( localData . bioUpdateAt ) . getTime ( ) !== new Date ( pu . bioUpdateAt ) . getTime ( ) )
61+ ) {
62+ update . push ( pu . procedureId ) ;
63+ }
64+ } ) ;
65+ }
66+ } ) ) ;
6467 } ) ) ;
6568
6669 // Splitt in Chunks & Update
0 commit comments