sqlalchemy 2.0 changes

This commit is contained in:
Aditi Anand
2024-03-25 10:55:14 -04:00
parent dc9fa52bc8
commit 420291ffee
2 changed files with 33 additions and 29 deletions
+18 -11
View File
@@ -2,7 +2,7 @@ import uuid
from datetime import datetime, timedelta
from flask import current_app
from sqlalchemy import Float, cast
from sqlalchemy import Float, cast, select
from sqlalchemy.orm import joinedload
from sqlalchemy.sql.expression import and_, asc, case, func
@@ -48,7 +48,9 @@ from app.utils import (
def dao_fetch_all_services(only_active=False):
query = Service.query.order_by(asc(Service.created_at)).options(joinedload("users"))
query = Service.query.order_by(asc(Service.created_at)).options(
joinedload(Service.users)
)
if only_active:
query = query.filter(Service.active)
@@ -174,12 +176,17 @@ def dao_fetch_live_services_data():
def dao_fetch_service_by_id(service_id, only_active=False):
query = Service.query.filter_by(id=service_id).options(joinedload("users"))
stmt = (
select(Service)
.options(joinedload(Service.users))
.where(Service.id == service_id)
)
if only_active:
query = query.filter(Service.active)
stmt = stmt.where(Service.active)
return query.one()
result = db.session.execute(stmt)
return result.unique().scalars().first()
def dao_fetch_service_by_inbound_number(number):
@@ -194,7 +201,7 @@ def dao_fetch_service_by_inbound_number(number):
def dao_fetch_service_by_id_with_api_keys(service_id, only_active=False):
query = Service.query.filter_by(id=service_id).options(joinedload("api_keys"))
query = Service.query.filter_by(id=service_id).options(joinedload(Service.api_keys))
if only_active:
query = query.filter(Service.active)
@@ -234,9 +241,9 @@ def dao_archive_service(service_id):
# to ensure that db.session still contains the models when it comes to creating history objects
service = (
Service.query.options(
joinedload("templates"),
joinedload("templates.template_redacted"),
joinedload("api_keys"),
joinedload(Service.templates),
joinedload(Service.templates.template_redacted),
joinedload(Service.api_keys),
)
.filter(Service.id == service_id)
.one()
@@ -258,7 +265,7 @@ def dao_archive_service(service_id):
def dao_fetch_service_by_id_and_user(service_id, user_id):
return (
Service.query.filter(Service.users.any(id=user_id), Service.id == service_id)
.options(joinedload("users"))
.options(joinedload(Service.users))
.one()
)
@@ -478,7 +485,7 @@ def dao_suspend_service(service_id):
# to ensure that db.session still contains the models when it comes to creating history objects
service = (
Service.query.options(
joinedload("api_keys"),
joinedload(Service.api_keys),
)
.filter(Service.id == service_id)
.one()