36 lines
946 B
Python
36 lines
946 B
Python
import graphene
|
|
from graphene import List
|
|
|
|
from backend.core.repositories import ReportRepository
|
|
from backend.graphql_api.types import ReportType
|
|
from backend.graphql_api.inputs import ReportFilterInput
|
|
|
|
|
|
class ReportQueries(graphene.ObjectType):
|
|
"""Report query operations"""
|
|
|
|
report = graphene.Field(
|
|
ReportType,
|
|
id=graphene.ID(required=True)
|
|
)
|
|
|
|
reports = graphene.Field(
|
|
List(ReportType),
|
|
filter=ReportFilterInput()
|
|
)
|
|
|
|
def resolve_report(self, info, id):
|
|
return ReportRepository.get_with_all_related(id)
|
|
|
|
def resolve_reports(self, info, filter=None):
|
|
if not filter:
|
|
return ReportRepository.get_all()
|
|
|
|
if filter.team_member_id:
|
|
return ReportRepository.get_by_team_member(filter.team_member_id)
|
|
|
|
return ReportRepository.get_by_date_range(
|
|
start_date=filter.start_date,
|
|
end_date=filter.end_date
|
|
)
|