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

Commit ca916eb

Browse files
committed
refactor
1 parent ddaea08 commit ca916eb

1 file changed

Lines changed: 9 additions & 8 deletions

File tree

postnl_api/postnl_api.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
""" Python wrapper for the PostNL API """
22

33
import logging
4-
from datetime import datetime
4+
from datetime import datetime, timedelta
55
import requests
66

77
BASE_URL = 'https://jouw.postnl.nl'
@@ -47,7 +47,8 @@ def __init__(self, user, password):
4747

4848
self._access_token = data['access_token']
4949
self._refresh_token = data['refresh_token']
50-
self._token_expires_in = data['expires_in'] # TODO Add logic to refresh on invalidate
50+
self._token_expires_in = data['expires_in']
51+
self._token_expires_at = datetime.now() + timedelta(0, data['expires_in'])
5152

5253
def refresh_token(self):
5354
""" Refresh access_token """
@@ -69,13 +70,11 @@ def get_shipments(self):
6970
""" Retrieve shipments """
7071

7172
headers = {
72-
'api-version': '4.7',
73-
'user-agent': 'PostNL/1 CFNetwork/889.3 Darwin/17.2.0',
7473
'authorization': 'Bearer ' + self._access_token
7574
}
7675

7776
response = requests.request(
78-
'GET', SHIPMENTS_URL, headers=headers)
77+
'GET', SHIPMENTS_URL, headers={**headers, **DEFAULT_HEADER})
7978

8079
if response.status_code == 401:
8180
self.refresh_token()
@@ -172,11 +171,13 @@ def get_letter(self, letter_id):
172171
response = requests.request(
173172
'GET', LETTERS_URL + '/' + letter_id, headers={**headers, **DEFAULT_HEADER})
174173

175-
if response.status_code == 401:
174+
if response.status_code == 200:
175+
letter = response.json()
176+
elif response.status_code == 401:
176177
self.refresh_token()
177178
letter = self.get_letter(letter_id)
178-
else:
179-
letter = response.json()
179+
else:
180+
raise Exception('Unknown Error')
180181

181182
return letter
182183

0 commit comments

Comments
 (0)