Skip to content
This repository was archived by the owner on Nov 6, 2025. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,7 @@ venv.bak/
/site

# mypy
.mypy_cache/
.mypy_cache/

# intellij
.idea/
2 changes: 1 addition & 1 deletion postnl_api/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
from postnl_api.postnl_api import PostNL_API, UnauthorizedException
from .postnl_api import PostNL_API, UnauthorizedException
Empty file added postnl_api/items/__init__.py
Empty file.
25 changes: 25 additions & 0 deletions postnl_api/items/letter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
class Letter(object):

def __init__(self, data, documents):
self.id = data.get('barcode')
self.delivery_date = data.get('expectedDeliveryDate')
self.status_message = None
self.image = None

if data.get('phase') is not None:
self.status_message = data.get('phase').get('message')

if len(documents.get('documents')) > 0:
self.image = documents.get('documents')[0].get('link') + "?type=png"

def id(self):
return self.id

def delivery_date(self):
return self.delivery_date

def status_message(self):
return self.status_message

def image(self):
return self.image
48 changes: 48 additions & 0 deletions postnl_api/items/package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
class Package(object):

def __init__(self, data):
self.id = data.get('key')
self.name = data.get('title')
self.type = data.get('settings').get('box')
self.status = data.get('status').get('deliveryStatus')
self.status_message = data.get('status').get('phase').get('message')
self.delivery_date = data.get('status').get('delivery').get('deliveryDate')
self.planned_date = None
self.planned_from = None
self.planned_to = None
if data.get('status').get('enroute') is not None and data.get('status').get('enroute').get('timeframe') is not None:
self.planned_date = data.get('status').get('enroute').get('timeframe').get('date')
self.planned_from = data.get('status').get('enroute').get('timeframe').get('from')
self.planned_to = data.get('status').get('enroute').get('timeframe').get('to')

self.url = data.get('status').get('webUrl')

def id(self):
return self.id

def name(self):
return self.name

def type(self):
return self.type

def status(self):
return self.status

def status_message(self):
return self.status_message

def delivery_date(self):
return self.delivery_date

def planned_date(self):
return self.planned_date

def planned_from(self):
return self.planned_from

def planned_to(self):
return self.planned_to

def url(self):
return self.url
Loading