- Rearranged imports in multiple files for consistency and clarity. - Updated logging middleware to exclude specific paths from logging. - Enhanced security module by cleaning up token handling and improving tenant validation. - Added tenant and company scoped mixins for better database model management. - Implemented generic CRUD routes for tenant-scoped resources. - Improved error handling and response management in API routes. - Cleaned up login and logout processes to ensure proper session management. - Introduced mechanisms to clear local storage and cookies on tenant change. - Enhanced company store to detect tenant changes and clear data accordingly. - Added new DTO mixins for currency and value affect flags.
33 lines
932 B
Python
33 lines
932 B
Python
from sqlalchemy.orm import Session
|
|
|
|
from . import dto, models
|
|
|
|
|
|
class DriverService:
|
|
@staticmethod
|
|
def get_driver_by_key_and_line(db: Session, transporter_key: str, line: int):
|
|
return (
|
|
db.query(models.Driver)
|
|
.filter(
|
|
models.Driver.transporter_key == transporter_key,
|
|
models.Driver.line == line,
|
|
)
|
|
.first()
|
|
)
|
|
|
|
@staticmethod
|
|
def create_driver(db: Session, driver_data: dto.DriverCreateDTO):
|
|
new_driver = models.Driver(**driver_data.dict())
|
|
db.add(new_driver)
|
|
db.commit()
|
|
db.refresh(new_driver)
|
|
return new_driver
|
|
|
|
@staticmethod
|
|
def delete_driver(db: Session, transporter_key: str, line: int):
|
|
driver = DriverService.get_driver_by_key_and_line(db, transporter_key, line)
|
|
if driver:
|
|
db.delete(driver)
|
|
db.commit()
|
|
return driver
|