예제 #1
0
    def resolve_entities(  # pylint: disable=arguments-differ
        _root,
        info: ResolveInfo,
        filter_string: FilterString = None,
        after: str = None,
        before: str = None,
        first: int = None,
        last: int = None,
    ) -> Entities:
        gmp = get_gmp(info)

        filter_string = get_filter_string_for_pagination(
            filter_string, first=first, last=last, after=after, before=before
        )

        xml: XmlElement = gmp.get_reports(
            filter_string=filter_string.filter_string
        )

        reports = []

        report_elements = xml.findall('report')
        for elem in report_elements:
            report = ReportModel()
            report.outer_report = elem
            report.inner_report = elem.find('report')
            reports.append(report)
        counts = xml.find('report_count')
        requested = xml.find('reports')

        return Entities(reports, counts, requested)
예제 #2
0
 def resolve(
     _root,
     info,
     report_id: UUID,
     report_format_id: UUID = None,
     delta_report_id: UUID = None,
 ):
     gmp = get_gmp(info)
     report = ReportModel()
     xml: XmlElement = gmp.get_report(
         str(report_id),
         report_format_id=(str(report_format_id)
                           if report_format_id is not None else None),
         delta_report_id=(str(delta_report_id)
                          if delta_report_id is not None else None),
         details=True,
     )
     report.outer_report = xml.find('report')
     report.inner_report = report.outer_report.find('report')
     return report