42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
import graphene
|
|
from graphene import List
|
|
|
|
from backend.core.repositories import ServiceRepository
|
|
from backend.graphql_api.types import ServiceType
|
|
from backend.graphql_api.inputs import ServiceFilterInput
|
|
|
|
|
|
class ServiceQueries(graphene.ObjectType):
|
|
"""Service query operations"""
|
|
|
|
service = graphene.Field(
|
|
ServiceType,
|
|
id=graphene.ID(required=True)
|
|
)
|
|
|
|
services = graphene.Field(
|
|
List(ServiceType),
|
|
filter=ServiceFilterInput()
|
|
)
|
|
|
|
def resolve_service(self, info, id):
|
|
return ServiceRepository.get_by_id(id)
|
|
|
|
def resolve_services(self, info, filter=None):
|
|
if not filter:
|
|
return ServiceRepository.get_all()
|
|
|
|
if filter.account_id:
|
|
return ServiceRepository.get_by_account(filter.account_id)
|
|
|
|
if filter.status:
|
|
return ServiceRepository.get_by_status(filter.status)
|
|
|
|
return ServiceRepository.filter_services(
|
|
account_id=filter.account_id,
|
|
status=filter.status,
|
|
date_from=filter.start_date,
|
|
date_to=filter.end_date,
|
|
team_member_id=filter.team_member_id
|
|
)
|