From 27b6b74aaa999dbfad4f81c2c40a88ab50daca4b Mon Sep 17 00:00:00 2001 From: maximeroucher Date: Sun, 28 Jun 2026 11:38:35 +0200 Subject: [PATCH 1/5] fix: adding missing transaction --- app/core/mypayment/endpoints_mypayment.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/core/mypayment/endpoints_mypayment.py b/app/core/mypayment/endpoints_mypayment.py index 988c047ed5..b8c98cbf29 100644 --- a/app/core/mypayment/endpoints_mypayment.py +++ b/app/core/mypayment/endpoints_mypayment.py @@ -2213,6 +2213,7 @@ async def validate_can_scan_qrcode( @router.post( "/mypayment/stores/{store_id}/scan", status_code=201, + response_model=schemas_mypayment.TransactionBase, ) async def store_scan_qrcode( store_id: UUID, From ac878bf62dfcbb6c726c10682088e8f431b70d8f Mon Sep 17 00:00:00 2001 From: maximeroucher Date: Sun, 28 Jun 2026 13:55:03 +0200 Subject: [PATCH 2/5] fix: adding missing response model --- app/core/auth/endpoints_auth.py | 2 ++ app/core/core_endpoints/endpoints_core.py | 8 ++++++++ app/core/google_api/endpoints_google_api.py | 2 +- app/core/permissions/endpoints_permissions.py | 1 + app/utils/tools.py | 2 +- 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/core/auth/endpoints_auth.py b/app/core/auth/endpoints_auth.py index df63af2336..121a2d9fbe 100644 --- a/app/core/auth/endpoints_auth.py +++ b/app/core/auth/endpoints_auth.py @@ -3,6 +3,7 @@ import logging import urllib.parse from datetime import UTC, datetime, timedelta +from typing import Any import calypsso import jwt @@ -1046,6 +1047,7 @@ async def introspect_refresh_token( @router.get( "/auth/userinfo", + response_model=dict[str, Any], status_code=200, ) async def auth_get_userinfo( diff --git a/app/core/core_endpoints/endpoints_core.py b/app/core/core_endpoints/endpoints_core.py index cdc8db19fc..18f69b0d6d 100644 --- a/app/core/core_endpoints/endpoints_core.py +++ b/app/core/core_endpoints/endpoints_core.py @@ -42,6 +42,7 @@ async def read_information( @router.get( "/privacy", + response_model=str, status_code=200, ) async def read_privacy(settings: Settings = Depends(get_settings)): @@ -57,6 +58,7 @@ async def read_privacy(settings: Settings = Depends(get_settings)): @router.get( "/terms-and-conditions", + response_model=str, status_code=200, ) async def read_terms_and_conditions(settings: Settings = Depends(get_settings)): @@ -72,6 +74,7 @@ async def read_terms_and_conditions(settings: Settings = Depends(get_settings)): @router.get( "/mypayment-terms-of-service", + response_model=str, status_code=200, ) async def read_mypayment_tos(settings: Settings = Depends(get_settings)): @@ -86,6 +89,7 @@ async def read_mypayment_tos(settings: Settings = Depends(get_settings)): @router.get( "/support", + response_model=str, status_code=200, ) async def read_support(settings: Settings = Depends(get_settings)): @@ -101,6 +105,7 @@ async def read_support(settings: Settings = Depends(get_settings)): @router.get( "/security.txt", + response_model=str, status_code=200, ) async def read_security_txt(settings: Settings = Depends(get_settings)): @@ -115,6 +120,7 @@ async def read_security_txt(settings: Settings = Depends(get_settings)): @router.get( "/.well-known/security.txt", + response_model=str, status_code=200, ) async def read_wellknown_security_txt(settings: Settings = Depends(get_settings)): @@ -130,6 +136,7 @@ async def read_wellknown_security_txt(settings: Settings = Depends(get_settings) @router.get( "/robots.txt", + response_model=str, status_code=200, ) async def read_robots_txt(settings: Settings = Depends(get_settings)): @@ -145,6 +152,7 @@ async def read_robots_txt(settings: Settings = Depends(get_settings)): @router.get( "/account-deletion", + response_model=str, status_code=200, ) async def read_account_deletion(settings: Settings = Depends(get_settings)): diff --git a/app/core/google_api/endpoints_google_api.py b/app/core/google_api/endpoints_google_api.py index aaf2e79849..0d3db05bd7 100644 --- a/app/core/google_api/endpoints_google_api.py +++ b/app/core/google_api/endpoints_google_api.py @@ -23,7 +23,7 @@ hyperion_error_logger = logging.getLogger("hyperion.error") -@router.get("/google-api/oauth2callback", status_code=200) +@router.get("/google-api/oauth2callback", response_model=str, status_code=200) async def google_api_callback( request: Request, db: AsyncSession = Depends(get_db), diff --git a/app/core/permissions/endpoints_permissions.py b/app/core/permissions/endpoints_permissions.py index ea2708f9b3..85a965afdb 100644 --- a/app/core/permissions/endpoints_permissions.py +++ b/app/core/permissions/endpoints_permissions.py @@ -98,6 +98,7 @@ async def read_permission( @router.post( "/permissions/", + response_model=dict[str, str], status_code=201, ) async def create_permission( diff --git a/app/utils/tools.py b/app/utils/tools.py index b79b572ae6..4b9023ad2b 100644 --- a/app/utils/tools.py +++ b/app/utils/tools.py @@ -812,7 +812,7 @@ async def execute_async_or_sync_method( def patch_identity_in_text( text: str, settings: "Settings", -): +) -> str: """ Patch the given text with the identity of the school. This is used to replace the identity placeholders in the legal texts with the values defined in the settings. From 6cdae1501aeaa17d65692c99e3704534f5980d8f Mon Sep 17 00:00:00 2001 From: maximeroucher Date: Sun, 28 Jun 2026 13:55:17 +0200 Subject: [PATCH 3/5] feat: using 204 for no model response --- app/core/memberships/endpoints_memberships.py | 2 +- app/core/mypayment/endpoints_mypayment.py | 2 +- app/core/notification/endpoints_notification.py | 2 +- app/core/users/endpoints_users.py | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/core/memberships/endpoints_memberships.py b/app/core/memberships/endpoints_memberships.py index c8a6e80ca2..aa10883d42 100644 --- a/app/core/memberships/endpoints_memberships.py +++ b/app/core/memberships/endpoints_memberships.py @@ -521,7 +521,7 @@ async def delete_user_membership( @router.post( "/memberships/{membership_id}/group/{group_id}/synchronize", - status_code=201, + status_code=204, ) async def synchronize_membership_with_group( membership_id: uuid.UUID, diff --git a/app/core/mypayment/endpoints_mypayment.py b/app/core/mypayment/endpoints_mypayment.py index b8c98cbf29..b9b022bc32 100644 --- a/app/core/mypayment/endpoints_mypayment.py +++ b/app/core/mypayment/endpoints_mypayment.py @@ -340,7 +340,7 @@ async def delete_structure( @router.post( "/mypayment/structures/{structure_id}/init-manager-transfer", - status_code=201, + status_code=204, ) async def init_transfer_structure_manager( structure_id: UUID, diff --git a/app/core/notification/endpoints_notification.py b/app/core/notification/endpoints_notification.py index bc0e1ebc93..cd86cc8d56 100644 --- a/app/core/notification/endpoints_notification.py +++ b/app/core/notification/endpoints_notification.py @@ -253,7 +253,7 @@ async def send_notification( @router.post( "/notification/test/send", - status_code=201, + status_code=204, ) async def send_test_notification( user_id: str | None = None, diff --git a/app/core/users/endpoints_users.py b/app/core/users/endpoints_users.py index 3d86bf132d..31a48e8004 100644 --- a/app/core/users/endpoints_users.py +++ b/app/core/users/endpoints_users.py @@ -567,7 +567,7 @@ async def activate_user( @router.post( "/users/s3-init", - status_code=201, + status_code=204, ) async def init_s3_for_users( db: AsyncSession = Depends(get_db), @@ -805,6 +805,7 @@ async def migrate_mail( @router.get( "/users/migrate-mail-confirm", + response_model=str, status_code=200, ) async def migrate_mail_confirm( From ae084a11959cb7d966975d11ddfa24c4bff39e2e Mon Sep 17 00:00:00 2001 From: maximeroucher Date: Sun, 28 Jun 2026 14:24:47 +0200 Subject: [PATCH 4/5] fix: tests expected reponse type --- tests/core/test_mypayment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/core/test_mypayment.py b/tests/core/test_mypayment.py index aca103ddbc..e3c7eea6b1 100644 --- a/tests/core/test_mypayment.py +++ b/tests/core/test_mypayment.py @@ -966,7 +966,7 @@ async def test_transfer_structure_manager_as_manager( "new_manager_user_id": ecl_user2.id, }, ) - assert response.status_code == 201 + assert response.status_code == 204 response = client.get( "/mypayment/structures/confirm-manager-transfer", From f4628f7898cf7a8e61edb2352dcad4017f009002 Mon Sep 17 00:00:00 2001 From: maximeroucher Date: Sun, 28 Jun 2026 15:13:24 +0200 Subject: [PATCH 5/5] fix: permission post returning 204 --- app/core/permissions/endpoints_permissions.py | 4 +--- tests/core/test_permissions.py | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/core/permissions/endpoints_permissions.py b/app/core/permissions/endpoints_permissions.py index 85a965afdb..913b80902b 100644 --- a/app/core/permissions/endpoints_permissions.py +++ b/app/core/permissions/endpoints_permissions.py @@ -98,8 +98,7 @@ async def read_permission( @router.post( "/permissions/", - response_model=dict[str, str], - status_code=201, + status_code=204, ) async def create_permission( permission: schemas_permissions.CoreGroupPermission @@ -125,7 +124,6 @@ async def create_permission( await cruds_permissions.create_group_permission(permission, db) else: await cruds_permissions.create_account_type_permission(permission, db) - return {"message": "Permission created successfully"} @router.delete( diff --git a/tests/core/test_permissions.py b/tests/core/test_permissions.py index 91198c1fc8..0809649dc5 100644 --- a/tests/core/test_permissions.py +++ b/tests/core/test_permissions.py @@ -82,7 +82,7 @@ def test_create_permission(client: TestClient) -> None: }, headers={"Authorization": f"Bearer {admin_token}"}, ) - assert response.status_code == 201 + assert response.status_code == 204 response = client.get( f"/permissions/{BookingPermissions.manage_managers.value}",