81 lines
3.1 KiB
Python
81 lines
3.1 KiB
Python
from datetime import datetime
|
|
from database import get_connection, is_postgres
|
|
|
|
class CompanyUsers:
|
|
def __init__(self):
|
|
self.ph = "%s" if is_postgres() else "?"
|
|
|
|
def access_to_dict(self, row):
|
|
access = {
|
|
'id': row[0],
|
|
'company_user_id': row[1],
|
|
'clients': row[2],
|
|
'transporters': row[3],
|
|
'destinations': row[4],
|
|
'orders_in': row[5],
|
|
'orders_out': row[6],
|
|
'report':row[7],
|
|
'created_at': row[8]
|
|
}
|
|
return access
|
|
|
|
def insert_company_user_access(self, access_data):
|
|
created_at = datetime.now().isoformat()
|
|
with get_connection() as conn:
|
|
cursor = conn.cursor()
|
|
returning = "RETURNING id" if is_postgres() else ""
|
|
query = f"""
|
|
INSERT INTO company_user_access (
|
|
company_user_id, clients, transporters, destinations, orders_in, orders_out, report, created_at
|
|
) VALUES ({self.ph}, {self.ph}, {self.ph}, {self.ph}, {self.ph}, {self.ph}, {self.ph}, {self.ph}) {returning}
|
|
"""
|
|
cursor.execute(
|
|
query,
|
|
(
|
|
access_data['company_user_id'],
|
|
access_data['clients'],
|
|
access_data['transporters'],
|
|
access_data['destinations'],
|
|
access_data['orders_in'],
|
|
access_data['orders_out'],
|
|
access_data['report'],
|
|
created_at
|
|
)
|
|
)
|
|
inserted_id = None
|
|
if is_postgres():
|
|
inserted_id = cursor.fetchone()[0]
|
|
else:
|
|
inserted_id = cursor.lastrowid
|
|
if hasattr(conn, "commit"):
|
|
conn.commit()
|
|
return inserted_id
|
|
|
|
def get_access_by_company_user_id(self, company_user_id):
|
|
with get_connection() as conn:
|
|
cursor = conn.cursor()
|
|
cursor.execute(f"SELECT * FROM company_user_access WHERE company_user_id = {self.ph}", (company_user_id,))
|
|
row = cursor.fetchone()
|
|
return self.access_to_dict(row) if row else None
|
|
|
|
def update_company_user_access(self, data):
|
|
with get_connection() as conn:
|
|
cursor = conn.cursor()
|
|
cursor.execute(
|
|
f"""
|
|
UPDATE company_user_access
|
|
SET clients = {self.ph}, transporters = {self.ph}, destinations = {self.ph}, orders_in = {self.ph}, orders_out = {self.ph}, report = {self.ph}
|
|
WHERE company_user_id = {self.ph}
|
|
""",
|
|
(
|
|
data['clients'],
|
|
data['transporters'],
|
|
data['destinations'],
|
|
data['orders_in'],
|
|
data['orders_out'],
|
|
data['report'],
|
|
data['company_user_id']
|
|
)
|
|
)
|
|
if hasattr(conn, "commit"):
|
|
conn.commit() |