diff --git a/src/graphql_schema/entities/resolvers/aircraft.py b/src/graphql_schema/entities/resolvers/aircraft.py index d3fcbe7..0192c86 100644 --- a/src/graphql_schema/entities/resolvers/aircraft.py +++ b/src/graphql_schema/entities/resolvers/aircraft.py @@ -26,10 +26,6 @@ class AircraftQueryResolver(BaseQueryResolver): ): filters = [] search = {} - if object_id: - filters.append(models.Aircraft.id == object_id) - if not organization_ids: - filters.append(models.Aircraft.created_by_id == user_id) if kwargs.get("call_sign"): filters.append(models.Aircraft.call_sign == kwargs['call_sign']) @@ -37,6 +33,7 @@ class AircraftQueryResolver(BaseQueryResolver): search['search'] = kwargs.pop("search", None) query = super().get_query( + object_id=object_id, only_my=False, only_public=kwargs.get("only_public", False), order_by=order_by, @@ -55,6 +52,8 @@ class AircraftQueryResolver(BaseQueryResolver): ) ) ) + elif user_id: + filters.append(models.Aircraft.created_by_id == user_id) return query diff --git a/src/graphql_schema/entities/resolvers/base.py b/src/graphql_schema/entities/resolvers/base.py index 3b045d6..2a98b91 100644 --- a/src/graphql_schema/entities/resolvers/base.py +++ b/src/graphql_schema/entities/resolvers/base.py @@ -58,7 +58,7 @@ class BaseQueryResolver(BaseResolver): query = self._handle_search(query, kwargs.pop("search", None)) if filters: - query = query.filter(**kwargs) + query = query.filter(*filters) return query diff --git a/src/graphql_schema/entities/resolvers/photo.py b/src/graphql_schema/entities/resolvers/photo.py index 536c122..e9f097f 100644 --- a/src/graphql_schema/entities/resolvers/photo.py +++ b/src/graphql_schema/entities/resolvers/photo.py @@ -32,14 +32,13 @@ class PhotoQueryResolver(BaseQueryResolver): only_public: Optional[bool] = False, *args, **kwargs ): - query = super().get_query( user_id, object_id, order_by, - **{ - field: kwargs[field] + filters=[ + getattr(self.model, field) == kwargs[field] for field in ("aircraft_id", "point_of_interest_id", "flight_id") if kwargs.get(field) - } + ] ) if kwargs.get("public"):