10
10
from zgw_consumers .models import Service
11
11
12
12
from openarchiefbeheer .celery import app
13
+ from openarchiefbeheer .config .models import APIConfig
13
14
from openarchiefbeheer .destruction .utils import resync_items_and_zaken
14
15
from openarchiefbeheer .logging import logevent
15
16
16
17
from .api .serializers import ZaakSerializer
17
18
from .decorators import log_errors
18
19
from .models import Zaak
19
- from .utils import pagination_helper , process_expanded_data
20
+ from .utils import NoClient , pagination_helper , process_expanded_data
20
21
21
22
logger = logging .getLogger (__name__ )
22
23
@@ -26,6 +27,10 @@ def retrieve_and_cache_zaken_from_openzaak() -> None:
26
27
zrc_service = Service .objects .get (api_type = APITypes .zrc )
27
28
zrc_client = build_client (zrc_service )
28
29
30
+ config = APIConfig .get_solo ()
31
+ service = config .selectielijst_api_service
32
+ selectielijst_api_client = build_client (service ) if service else None
33
+
29
34
today = datetime .date .today ()
30
35
query_params = {
31
36
"expand" : "resultaat,resultaat.resultaattype,zaaktype,rollen" ,
@@ -53,24 +58,27 @@ def retrieve_and_cache_zaken_from_openzaak() -> None:
53
58
timeout = settings .REQUESTS_DEFAULT_TIMEOUT ,
54
59
)
55
60
56
- for index , data in enumerate (data_iterator ):
57
- logger .info ("Retrieved page %s." , index + 1 )
61
+ with selectielijst_api_client or NoClient ():
62
+ for index , data in enumerate (data_iterator ):
63
+ logger .info ("Retrieved page %s." , index + 1 )
58
64
59
- zaken = process_expanded_data (data ["results" ])
65
+ zaken = data ["results" ]
66
+ if selectielijst_api_client :
67
+ zaken = process_expanded_data (zaken , selectielijst_api_client )
60
68
61
- # Since before we indexed also zaken without einddatum, prevent
62
- # crash when retrieving zaken.
63
- if zaken_in_db :
64
- new_zaken = {zaak ["url" ]: zaak for zaak in zaken }
65
- duplicates = Zaak .objects .filter (url__in = new_zaken .keys ())
66
- if duplicates .exists ():
67
- for duplicate in duplicates :
68
- del new_zaken [duplicate .url ]
69
- zaken = [zaak for zaak in new_zaken .values ()]
69
+ # Since before we indexed also zaken without einddatum, prevent
70
+ # crash when retrieving zaken.
71
+ if zaken_in_db :
72
+ new_zaken = {zaak ["url" ]: zaak for zaak in zaken }
73
+ duplicates = Zaak .objects .filter (url__in = new_zaken .keys ())
74
+ if duplicates .exists ():
75
+ for duplicate in duplicates :
76
+ del new_zaken [duplicate .url ]
77
+ zaken = [zaak for zaak in new_zaken .values ()]
70
78
71
- serializer = ZaakSerializer (data = zaken , many = True )
72
- serializer .is_valid (raise_exception = True )
73
- serializer .save ()
79
+ serializer = ZaakSerializer (data = zaken , many = True )
80
+ serializer .is_valid (raise_exception = True )
81
+ serializer .save ()
74
82
75
83
76
84
@app .task
@@ -87,8 +95,12 @@ def resync_zaken():
87
95
"einddatum__lt" : today .isoformat (),
88
96
}
89
97
98
+ config = APIConfig .get_solo ()
99
+ service = config .selectielijst_api_service
100
+ selectielijst_api_client = build_client (service ) if service else None
101
+
90
102
logevent .resync_started ()
91
- with transaction .atomic (), zrc_client :
103
+ with transaction .atomic (), zrc_client , selectielijst_api_client or NoClient () :
92
104
Zaak .objects .all ().delete ()
93
105
94
106
response = zrc_client .get (
@@ -109,7 +121,9 @@ def resync_zaken():
109
121
for index , data in enumerate (data_iterator ):
110
122
logger .info ("Retrieved page %s." , index + 1 )
111
123
112
- zaken = process_expanded_data (data ["results" ])
124
+ zaken = data ["results" ]
125
+ if selectielijst_api_client :
126
+ zaken = process_expanded_data (zaken , selectielijst_api_client )
113
127
114
128
serializer = ZaakSerializer (data = zaken , many = True )
115
129
serializer .is_valid (raise_exception = True )
0 commit comments