1212LETTERS_URL = BASE_URL + '/mobile/api/letters'
1313VALIDATE_LETTERS_URL = BASE_URL + '/mobile/api/letters/validation'
1414
15+ DEFAULT_HEADER = {
16+ 'api-version' : '4.7' ,
17+ 'user-agent' : 'PostNL/1 CFNetwork/889.3 Darwin/17.2.0' ,
18+ 'content-type' : "application/x-www-form-urlencoded" ,
19+ }
20+
1521class PostNL_API (object ):
1622 """ Interface class for the PostNL API """
1723
@@ -28,22 +34,15 @@ def __init__(self, user, password):
2834 'password' : self ._password
2935 }
3036
31- headers = {
32- 'api-version' : '4.7' ,
33- 'user-agent' : 'PostNL/1 CFNetwork/889.3 Darwin/17.2.0' ,
34- 'content-type' : "application/x-www-form-urlencoded" ,
35- }
36-
3737 try :
3838 response = requests .request (
39- 'POST' , AUTHENTICATE_URL , data = payload , headers = headers )
40-
39+ 'POST' , AUTHENTICATE_URL , data = payload , headers = DEFAULT_HEADER )
4140 data = response .json ()
4241
4342 except Exception :
4443 raise (Exception )
4544
46- if data [ 'error' ] :
45+ if 'error' in data :
4746 raise Exception (data ['error' ])
4847
4948 self ._access_token = data ['access_token' ]
@@ -59,14 +58,8 @@ def refresh_token(self):
5958 'refresh_token' : self ._refresh_token
6059 }
6160
62- headers = {
63- 'api-version' : '4.7' ,
64- 'user-agent' : 'PostNL/1 CFNetwork/889.3 Darwin/17.2.0' ,
65- 'content-type' : "application/x-www-form-urlencoded" ,
66- }
67-
6861 response = requests .request (
69- 'POST' , AUTHENTICATE_URL , data = payload , headers = headers )
62+ 'POST' , AUTHENTICATE_URL , data = payload , headers = DEFAULT_HEADER )
7063
7164 data = response .json ()
7265
@@ -96,13 +89,11 @@ def get_shipment(self, shipment_id):
9689 """ Retrieve single shipment by id """
9790
9891 headers = {
99- 'api-version' : '4.7' ,
100- 'user-agent' : 'PostNL/1 CFNetwork/889.3 Darwin/17.2.0' ,
10192 'authorization' : 'Bearer ' + self ._access_token
10293 }
10394
10495 response = requests .request (
105- 'GET' , SHIPMENTS_URL + '/' + shipment_id , headers = headers )
96+ 'GET' , SHIPMENTS_URL + '/' + shipment_id , headers = { ** headers , ** DEFAULT_HEADER } )
10697
10798 if response .status_code == 401 :
10899 self .refresh_token ()
@@ -116,13 +107,11 @@ def get_profile(self):
116107 """ Retrieve profile """
117108
118109 headers = {
119- 'api-version' : '4.7' ,
120- 'user-agent' : 'PostNL/1 CFNetwork/889.3 Darwin/17.2.0' ,
121110 'authorization' : 'Bearer ' + self ._access_token
122111 }
123112
124113 response = requests .request (
125- 'GET' , PROFILE_URL , headers = headers )
114+ 'GET' , PROFILE_URL , headers = { ** headers , ** DEFAULT_HEADER } )
126115
127116 if response .status_code == 401 :
128117 self .refresh_token ()
@@ -136,34 +125,30 @@ def validate_letters(self):
136125 """ Retrieve letter validation status """
137126
138127 headers = {
139- 'api-version' : '4.7' ,
140- 'user-agent' : 'PostNL/1 CFNetwork/889.3 Darwin/17.2.0' ,
141128 'authorization' : 'Bearer ' + self ._access_token
142129 }
143130
144131 response = requests .request (
145- 'GET' , VALIDATE_LETTERS_URL , headers = headers )
132+ 'GET' , VALIDATE_LETTERS_URL , headers = { ** headers , ** DEFAULT_HEADER } )
146133
147134 if response .status_code == 401 :
148135 self .refresh_token ()
149136 validation = self .validate_letters ()
150137 else :
151138 validation = response .json ()
152-
139+
153140 return validation
154141
155142 def get_letters (self ):
156143 """ Retrieve letters """
157144
158145 headers = {
159- 'api-version' : '4.7' ,
160- 'user-agent' : 'PostNL/1 CFNetwork/889.3 Darwin/17.2.0' ,
161146 'authorization' : 'Bearer ' + self ._access_token
162147 }
163148
164149 response = requests .request (
165- 'GET' , LETTERS_URL , headers = headers )
166-
150+ 'GET' , LETTERS_URL , headers = { ** headers , ** DEFAULT_HEADER } )
151+
167152 if response .status_code == 401 :
168153 self .refresh_token ()
169154 letters = self .get_letters ()
@@ -181,13 +166,11 @@ def get_letter(self, letter_id):
181166 """ Retrieve single letter by id """
182167
183168 headers = {
184- 'api-version' : '4.7' ,
185- 'user-agent' : 'PostNL/1 CFNetwork/889.3 Darwin/17.2.0' ,
186169 'authorization' : 'Bearer ' + self ._access_token
187170 }
188171
189172 response = requests .request (
190- 'GET' , LETTERS_URL + '/' + letter_id , headers = headers )
173+ 'GET' , LETTERS_URL + '/' + letter_id , headers = { ** headers , ** DEFAULT_HEADER } )
191174
192175 if response .status_code == 401 :
193176 self .refresh_token ()
@@ -227,7 +210,7 @@ def get_relevant_letters(self):
227210 relevant_letters = []
228211
229212 for letter in letters :
230-
213+
231214 # Check if letter is scheduled for delivery in the future
232215 if letter ['expectedDeliveryDate' ]:
233216 expected_delivery_date = datetime .strptime (
@@ -236,4 +219,4 @@ def get_relevant_letters(self):
236219 if expected_delivery_date .date () == datetime .today ().date ():
237220 relevant_letters .append (letter )
238221
239- return relevant_letters
222+ return relevant_letters
0 commit comments