Skip to content
This repository was archived by the owner on Nov 6, 2025. It is now read-only.

Commit ddaea08

Browse files
committed
Move header to constant
1 parent 57fc579 commit ddaea08

1 file changed

Lines changed: 18 additions & 35 deletions

File tree

postnl_api/postnl_api.py

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212
LETTERS_URL = BASE_URL + '/mobile/api/letters'
1313
VALIDATE_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+
1521
class 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

Comments
 (0)