django-ok-17track 0.0.4

Creator: codyrutscher

Last updated:

Add to Cart

Description:

djangook17track 0.0.4

django-17track is an unofficial 17track.com API wrapper for Django.

Installation
Install with pip:
$ pip install django-ok-17track
Update INSTALLED_APPS:
INSTALLED_APPS = [
...
'track17',
...
]
Make migrations
$ python manage.py migrate


Available settings
TRACK17_API_KEY - API key for service.
TRACK17_API_KEY_FUNCTION - Custom function to return API key, if you want to store it outside the Django settings.
TRACK17_COUNTRIES_URL - Url to grab countries. Uses https://www.17track.net/en/apicountry.
TRACK17_CARRIERS_URL - Url to grab carriers. Uses https://www.17track.net/en/apicarrier.


Basic example to use:

How to get all countries and carriers:

python managet.py populate_carriers



How to register tracking number and get it’s info:

from rest_framework import serializers
from track17.services import register_track, get_track_info, get_track_info_as_packages
from apps.track17.exceptions import DateProcessingError



# try to register tracking number at 17track API
try:
register_track('tracking_number')
except DateProcessingError as exc:
raise serializers.ValidationError(str(exc))

# try to fetch an actual info about a tracking number
try:
response: Dict = get_track_info('tracking_number')
except DateProcessingError as exc:
raise serializers.ValidationError(str(exc))

accepted_packages = response.get('accepted', [])

# return packages info as a list of `PackageEntity` (dataclass instance) objects
# in a readable way with a represantion of carriers and countries as Django model instances
packages = get_track_info_as_packages(accepted)



Or can use 17track adapter directly:

from track17.track17 import Track17Adapter


track17 = Track17Adapter()
response = track17.register('number1', 'number2')
response = track17.get_track_info('number1', 'number2')

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.