From 620e9fd2a8f5bbf994b8fe83ff86ca89052256d7 Mon Sep 17 00:00:00 2001 From: Galindo97 Date: Thu, 22 Jan 2026 13:43:31 -0600 Subject: [PATCH] fix(clients_and_providers): include 'both' type in client or provider filtering --- .../v1/modules/a76/clients_and_providers/routes.py | 9 ++++++++- .../v1/modules/a76/clients_and_providers/service.py | 13 +++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/backend/api/v1/modules/a76/clients_and_providers/routes.py b/backend/api/v1/modules/a76/clients_and_providers/routes.py index e1db85d7..b1857de0 100644 --- a/backend/api/v1/modules/a76/clients_and_providers/routes.py +++ b/backend/api/v1/modules/a76/clients_and_providers/routes.py @@ -46,7 +46,14 @@ async def get_clients_and_providers( ) if type is not None: - query = query.filter(ClientProvider.client_or_provider == type) + # Include 'both' type when filtering by client or provider + from sqlalchemy import or_ + query = query.filter( + or_( + ClientProvider.client_or_provider == type, + ClientProvider.client_or_provider == ClientOrProviderEnum.BOTH + ) + ) if active is not None: query = query.filter(ClientProvider.is_active == active) diff --git a/backend/api/v1/modules/a76/clients_and_providers/service.py b/backend/api/v1/modules/a76/clients_and_providers/service.py index 5a329673..759cae59 100644 --- a/backend/api/v1/modules/a76/clients_and_providers/service.py +++ b/backend/api/v1/modules/a76/clients_and_providers/service.py @@ -9,6 +9,7 @@ from fastapi import HTTPException from sqlalchemy import or_ from sqlalchemy.exc import IntegrityError from sqlalchemy.orm import Session, joinedload +from .models import ClientOrProviderEnum from .dto import ( ClientProviderBasicDTO, @@ -56,8 +57,12 @@ class ClientProviderService: ) ) if filters.get("client_or_provider"): + query = query.filter( - ClientProvider.client_or_provider == filters["client_or_provider"] + or_( + ClientProvider.client_or_provider == filters["client_or_provider"], + ClientProvider.client_or_provider == ClientOrProviderEnum.BOTH + ) ) if filters.get("status"): enabled = 1 if filters["status"] == "enabled" else 0 @@ -345,8 +350,12 @@ class ClientProviderService: ) if client_or_provider: + from .models import ClientOrProviderEnum query = query.filter( - ClientProvider.client_or_provider == client_or_provider + or_( + ClientProvider.client_or_provider == client_or_provider, + ClientProvider.client_or_provider == ClientOrProviderEnum.BOTH + ) ) if enabled_only: