init commit
This commit is contained in:
87
transportmanager/server/models/transporters.py
Normal file
87
transportmanager/server/models/transporters.py
Normal file
@@ -0,0 +1,87 @@
|
||||
from datetime import datetime
|
||||
|
||||
from database import get_connection, is_postgres
|
||||
|
||||
class Transporters:
|
||||
def __init__(self):
|
||||
# Parameter placeholder depending on backend
|
||||
self.ph = "%s" if is_postgres() else "?"
|
||||
|
||||
def transporter_to_dict(self, row):
|
||||
return {
|
||||
"id": row[0],
|
||||
"user_id": row[1],
|
||||
"name": row[2],
|
||||
"address": row[3],
|
||||
"register_number": row[4],
|
||||
"contact_person": row[5],
|
||||
"phone": row[6],
|
||||
"email": row[7],
|
||||
"vat": row[8],
|
||||
"created_at": row[9]
|
||||
}
|
||||
|
||||
def create_transporter(self, name, address, register_number, contact_person, phone, email, vat, user_id):
|
||||
created_at = datetime.now().isoformat()
|
||||
returning = " RETURNING id" if is_postgres() else ""
|
||||
with get_connection() as conn:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(
|
||||
f"""
|
||||
INSERT INTO transporters
|
||||
(name, address, register_number, contact_person, phone, email, vat, created_at, user_id)
|
||||
VALUES ({self.ph}, {self.ph}, {self.ph}, {self.ph}, {self.ph}, {self.ph}, {self.ph}, {self.ph}, {self.ph}){returning}
|
||||
""",
|
||||
(name, address, register_number, contact_person, phone, email, vat, created_at, user_id),
|
||||
)
|
||||
transporter_id = cursor.fetchone()[0] if is_postgres() else cursor.lastrowid
|
||||
if hasattr(conn, "commit"):
|
||||
conn.commit()
|
||||
return transporter_id
|
||||
|
||||
def get_all_transporters_by_user(self, user_id):
|
||||
with get_connection() as conn:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(
|
||||
f"SELECT * FROM transporters WHERE user_id = {self.ph} ORDER BY created_at DESC",
|
||||
(user_id,),
|
||||
)
|
||||
rows = cursor.fetchall()
|
||||
return [self.transporter_to_dict(row) for row in rows]
|
||||
|
||||
def get_transporter_by_id(self, transporter_id):
|
||||
with get_connection() as conn:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(
|
||||
f"SELECT * FROM transporters WHERE id = {self.ph}",
|
||||
(transporter_id,),
|
||||
)
|
||||
row = cursor.fetchone()
|
||||
return self.transporter_to_dict(row) if row else None
|
||||
|
||||
def update_transporter(self, transporter_id, name, address, register_number, contact_person, phone, email, vat):
|
||||
with get_connection() as conn:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(
|
||||
f"""
|
||||
UPDATE transporters SET
|
||||
name = {self.ph},
|
||||
address = {self.ph},
|
||||
register_number = {self.ph},
|
||||
contact_person = {self.ph},
|
||||
phone = {self.ph},
|
||||
email = {self.ph},
|
||||
vat = {self.ph}
|
||||
WHERE id = {self.ph}
|
||||
""",
|
||||
(name, address, register_number, contact_person, phone, email, vat, transporter_id),
|
||||
)
|
||||
if hasattr(conn, "commit"):
|
||||
conn.commit()
|
||||
|
||||
def delete_transporter(self, transporter_id):
|
||||
with get_connection() as conn:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(f"DELETE FROM transporters WHERE id = {self.ph}", (transporter_id,))
|
||||
if hasattr(conn, "commit"):
|
||||
conn.commit()
|
||||
Reference in New Issue
Block a user