diff --git a/app/dao/inbound_numbers_dao.py b/app/dao/inbound_numbers_dao.py index 0a390c024..bb7d32595 100644 --- a/app/dao/inbound_numbers_dao.py +++ b/app/dao/inbound_numbers_dao.py @@ -1,24 +1,30 @@ +from sqlalchemy import select, update + from app import db from app.dao.dao_utils import autocommit from app.models import InboundNumber def dao_get_inbound_numbers(): - return InboundNumber.query.order_by(InboundNumber.updated_at).all() + stmt = select(InboundNumber).order_by(InboundNumber.updated_at) + return db.session.execute(stmt).all() def dao_get_available_inbound_numbers(): - return InboundNumber.query.filter( + stmt = select(InboundNumber).filter( InboundNumber.active, InboundNumber.service_id.is_(None) - ).all() + ) + return db.session.execute(stmt).all() def dao_get_inbound_number_for_service(service_id): - return InboundNumber.query.filter(InboundNumber.service_id == service_id).first() + stmt = select(InboundNumber).filter(InboundNumber.service_id == service_id) + return db.session.execute(stmt).scalars().first() def dao_get_inbound_number(inbound_number_id): - return InboundNumber.query.filter(InboundNumber.id == inbound_number_id).first() + stmt = select(InboundNumber).filter(InboundNumber.id == inbound_number_id) + return db.session.execute(stmt).scalars().first() @autocommit @@ -29,9 +35,8 @@ def dao_set_inbound_number_to_service(service_id, inbound_number): @autocommit def dao_set_inbound_number_active_flag(service_id, active): - inbound_number = InboundNumber.query.filter( - InboundNumber.service_id == service_id - ).first() + stmt = select(InboundNumber).filter(InboundNumber.service_id == service_id) + inbound_number = db.session.execute(stmt).scalars().first() inbound_number.active = active db.session.add(inbound_number) @@ -39,9 +44,13 @@ def dao_set_inbound_number_active_flag(service_id, active): @autocommit def dao_allocate_number_for_service(service_id, inbound_number_id): - updated = InboundNumber.query.filter_by( - id=inbound_number_id, active=True, service_id=None - ).update({"service_id": service_id}) - if not updated: + stmt = ( + update(InboundNumber) + .filter_by(id=inbound_number_id, active=True, service_id=None) + .values({"service_id": service_id}) + ) + result = db.session.execute(stmt) + db.session.commit() + if not result.rowcount == 0: raise Exception("Inbound number: {} is not available".format(inbound_number_id)) - return InboundNumber.query.get(inbound_number_id) + return db.session.get(InboundNumber, inbound_number_id) diff --git a/app/service_invite/rest.py b/app/service_invite/rest.py index f6d9627da..5728b3ed5 100644 --- a/app/service_invite/rest.py +++ b/app/service_invite/rest.py @@ -86,7 +86,7 @@ def _create_service_invite(invited_user, invite_link_host): redis_store.set( f"email-personalisation-{saved_notification.id}", json.dumps(personalisation), - ex=2*24*60*60, + ex=2 * 24 * 60 * 60, ) send_notification_to_queue(saved_notification, queue=QueueNames.NOTIFY)