2026-01-26 10:30:49 -05:00

55 lines
1.4 KiB
Python

import graphene
from graphene import List
from backend.core.repositories import ProfileRepository
from backend.graphql_api.types import ProfileType
from backend.graphql_api.inputs import ProfileSearchInput
class ProfileQueries(graphene.ObjectType):
"""Profile query operations"""
profile = graphene.Field(
ProfileType,
id=graphene.ID(required=True)
)
profile_detail = graphene.Field(
ProfileType,
id=graphene.ID(required=True)
)
my_profile = graphene.Field(ProfileType)
profiles = graphene.Field(
List(ProfileType),
filter=ProfileSearchInput()
)
def resolve_profile(self, info, id):
return ProfileRepository.get_by_id(id)
def resolve_profile_detail(self, info, id):
return ProfileRepository.get_by_id(id)
def resolve_my_profile(self, info):
if info.context.user.is_authenticated:
return ProfileRepository.get_by_user(info.context.user)
return None
def resolve_profiles(self, info, filter=None):
if not filter:
return ProfileRepository.get_all()
queryset = ProfileRepository.get_all()
if filter.role:
queryset = queryset.filter(role=filter.role)
if filter.search_term:
queryset = ProfileRepository.search(filter.search_term)
if filter.role:
queryset = queryset.filter(role=filter.role)
return queryset