This commit is contained in:
Kenneth Kehl
2024-11-15 08:50:01 -08:00
parent d1ebcba7b1
commit 131159813f
3 changed files with 59 additions and 21 deletions

View File

@@ -1,7 +1,7 @@
import uuid import uuid
from datetime import timedelta from datetime import timedelta
from sqlalchemy import func, or_ from sqlalchemy import func, or_, select
from app import db from app import db
from app.dao.dao_utils import autocommit, version_class from app.dao.dao_utils import autocommit, version_class
@@ -23,16 +23,26 @@ def save_model_api_key(api_key):
@autocommit @autocommit
@version_class(ApiKey) @version_class(ApiKey)
def expire_api_key(service_id, api_key_id): def expire_api_key(service_id, api_key_id):
api_key = ApiKey.query.filter_by(id=api_key_id, service_id=service_id).one() api_key = (
db.session.execute(
select(ApiKey).filter_by(id=api_key_id, service_id=service_id)
)
.scalars()
.one()
)
api_key.expiry_date = utc_now() api_key.expiry_date = utc_now()
db.session.add(api_key) db.session.add(api_key)
def get_model_api_keys(service_id, id=None): def get_model_api_keys(service_id, id=None):
if id: if id:
return ApiKey.query.filter_by( return (
id=id, service_id=service_id, expiry_date=None db.session.execute(
).one() select(ApiKey).filter_by(id=id, service_id=service_id, expiry_date=None)
)
.scalars()
.one()
)
seven_days_ago = utc_now() - timedelta(days=7) seven_days_ago = utc_now() - timedelta(days=7)
return ApiKey.query.filter( return ApiKey.query.filter(
or_( or_(
@@ -47,7 +57,13 @@ def get_unsigned_secrets(service_id):
""" """
This method can only be exposed to the Authentication of the api calls. This method can only be exposed to the Authentication of the api calls.
""" """
api_keys = ApiKey.query.filter_by(service_id=service_id, expiry_date=None).all() api_keys = (
db.session.execute(
select(ApiKey).filter_by(service_id=service_id, expiry_date=None)
)
.scalars()
.all()
)
keys = [x.secret for x in api_keys] keys = [x.secret for x in api_keys]
return keys return keys
@@ -56,5 +72,9 @@ def get_unsigned_secret(key_id):
""" """
This method can only be exposed to the Authentication of the api calls. This method can only be exposed to the Authentication of the api calls.
""" """
api_key = ApiKey.query.filter_by(id=key_id, expiry_date=None).one() api_key = (
db.session.execute(select(ApiKey).filter_by(id=key_id, expiry_date=None))
.scalars()
.one()
)
return api_key.secret return api_key.secret

View File

@@ -1,5 +1,7 @@
from datetime import timedelta from datetime import timedelta
from sqlalchemy import select
from app import db from app import db
from app.models import InvitedOrganizationUser from app.models import InvitedOrganizationUser
from app.utils import utc_now from app.utils import utc_now
@@ -11,19 +13,35 @@ def save_invited_org_user(invited_org_user):
def get_invited_org_user(organization_id, invited_org_user_id): def get_invited_org_user(organization_id, invited_org_user_id):
return InvitedOrganizationUser.query.filter_by( return (
organization_id=organization_id, id=invited_org_user_id db.session.execute(
).one() select(InvitedOrganizationUser).filter_by(
organization_id=organization_id, id=invited_org_user_id
)
)
.scalars()
.one()
)
def get_invited_org_user_by_id(invited_org_user_id): def get_invited_org_user_by_id(invited_org_user_id):
return InvitedOrganizationUser.query.filter_by(id=invited_org_user_id).one() return (
db.session.execute(
select(InvitedOrganizationUser).filter_by(id=invited_org_user_id)
)
.scalars()
.one()
)
def get_invited_org_users_for_organization(organization_id): def get_invited_org_users_for_organization(organization_id):
return InvitedOrganizationUser.query.filter_by( return (
organization_id=organization_id db.session.execute(
).all() select(InvitedOrganizationUser).filter_by(organization_id=organization_id)
)
.scalars()
.all()
)
def delete_org_invitations_created_more_than_two_days_ago(): def delete_org_invitations_created_more_than_two_days_ago():

View File

@@ -3,7 +3,7 @@ from app.dao.dao_utils import autocommit, version_class
from app.enums import CallbackType from app.enums import CallbackType
from app.models import ServiceCallbackApi from app.models import ServiceCallbackApi
from app.utils import utc_now from app.utils import utc_now
from sqlalchemy import select
@autocommit @autocommit
@version_class(ServiceCallbackApi) @version_class(ServiceCallbackApi)
@@ -29,23 +29,23 @@ def reset_service_callback_api(
def get_service_callback_api(service_callback_api_id, service_id): def get_service_callback_api(service_callback_api_id, service_id):
return ServiceCallbackApi.query.filter_by( return db.session.execute(select(ServiceCallbackApi).filter_by(
id=service_callback_api_id, service_id=service_id id=service_callback_api_id, service_id=service_id
).first() )).scalars().first()
def get_service_delivery_status_callback_api_for_service(service_id): def get_service_delivery_status_callback_api_for_service(service_id):
return ServiceCallbackApi.query.filter_by( return db.session.execute(select(ServiceCallbackApi).filter_by(
service_id=service_id, service_id=service_id,
callback_type=CallbackType.DELIVERY_STATUS, callback_type=CallbackType.DELIVERY_STATUS,
).first() )).scalars().first()
def get_service_complaint_callback_api_for_service(service_id): def get_service_complaint_callback_api_for_service(service_id):
return ServiceCallbackApi.query.filter_by( return db.session.execute(select(ServiceCallbackApi).filter_by(
service_id=service_id, service_id=service_id,
callback_type=CallbackType.COMPLAINT, callback_type=CallbackType.COMPLAINT,
).first() )).scalars().first()
@autocommit @autocommit