Files
notifications-api/app/dao/service_user_dao.py

37 lines
957 B
Python
Raw Normal View History

2024-10-10 07:49:26 -07:00
from sqlalchemy import select
from app import db
from app.dao.dao_utils import autocommit
2025-08-28 11:12:49 -07:00
from app.enums import UserState
from app.models import ServiceUser, User
def dao_get_service_user(user_id, service_id):
2024-12-19 11:10:03 -08:00
stmt = select(ServiceUser).where(
ServiceUser.user_id == user_id, ServiceUser.service_id == service_id
)
2024-10-10 07:49:26 -07:00
return db.session.execute(stmt).scalars().one_or_none()
def dao_get_active_service_users(service_id):
2024-10-10 07:49:26 -07:00
stmt = (
select(ServiceUser)
2023-08-29 14:54:30 -07:00
.join(User, User.id == ServiceUser.user_id)
2025-08-28 11:12:49 -07:00
.where(User.state == UserState.ACTIVE, ServiceUser.service_id == service_id)
)
2024-10-10 07:49:26 -07:00
return db.session.execute(stmt).scalars().all()
def dao_get_service_users_by_user_id(user_id):
2024-11-18 10:59:38 -08:00
return (
2024-12-19 11:10:03 -08:00
db.session.execute(select(ServiceUser).where(ServiceUser.user_id == user_id))
2024-11-18 10:59:38 -08:00
.scalars()
.all()
)
@autocommit
def dao_update_service_user(service_user):
db.session.add(service_user)