33 lines
1 KiB
Python
33 lines
1 KiB
Python
from database import Database
|
|
|
|
class Tracking:
|
|
def __init__(self, trackingnumber, service=None):
|
|
self.trackingnumber = trackingnumber
|
|
self.service = service
|
|
|
|
@classmethod
|
|
def from_database(cls, trackingnumber):
|
|
with Database() as db:
|
|
db.execute("SELECT service FROM tracking WHERE number=?", (trackingnumber,))
|
|
tracking = db.fetchone()
|
|
|
|
if not tracking:
|
|
raise ValueError("No tracking for tracking code %s in database" % trackingnumber)
|
|
|
|
return cls(trackingnumber, tracking[0])
|
|
|
|
def to_database(self):
|
|
with Database() as db:
|
|
db.execute("INSERT INTO tracking VALUES (?, ?)", (self.trackingnumber, self.service))
|
|
db.commit()
|
|
|
|
@classmethod
|
|
def all(cls):
|
|
trackings = list()
|
|
with Database() as db:
|
|
db.execute("SELECT number, service FROM tracking")
|
|
|
|
while current := db.fetchone():
|
|
trackings.append(cls(current[0], current[1]))
|
|
|
|
return trackings |