e60489715a
Client endpoint - GET & POST implemented
31 lines
896 B
Python
31 lines
896 B
Python
"""
|
|
"""
|
|
from fastapi import Depends
|
|
from sqlmodel import Session, SQLModel, select
|
|
from app.core.db import get_session
|
|
from app.schemas.models import Client
|
|
from typing import Type, Optional, Annotated
|
|
|
|
|
|
SessionDep = Annotated[Session, Depends(get_session)]
|
|
|
|
|
|
def exists(session: Session, model: Type[SQLModel], **filters) -> Optional[bool]:
|
|
"""
|
|
Checks if a request exists in the given model using any filters.
|
|
|
|
Example:
|
|
exists(session, Client, phone="0781232465", tax_number="TIN123")
|
|
"""
|
|
if not filters:
|
|
raise ValueError("At least one filter must be provided")
|
|
|
|
stmt = select(model)
|
|
for field, value in filters.items():
|
|
if not hasattr(model, field):
|
|
raise ValueError(f"Invalid filter field: {field}")
|
|
stmt = stmt.where(getattr(model, field) == value)
|
|
|
|
result = session.exec(stmt).first()
|
|
return result is not None
|