def METHOD_NAME(self, decoder):
    sections = decoder.sections
    inc_coverages = (
        "all" in sections or "contents" in sections or
        "coveragesummary" in sections
    )
    inc_dataset_series = (
        "all" in sections or "contents" in sections or
        "datasetseriessummary" in sections
    )
    if inc_coverages:
        cql_text = decoder.cql
        if cql_text:
            qs = models.EOObject.objects.all()
            mapping, mapping_choices = filters.get_field_mapping_for_model(
                models.Coverage  # TODO: allow mapping to Mosaic as-well?
            )
            ast = parse(cql_text)
            filter_expressions = to_filter(ast, mapping, mapping_choices)
            qs = qs.filter(filter_expressions)
        else:
            qs = models.EOObject.objects.filter(
                service_visibility__service='wcs',
                service_visibility__visibility=True
            )
        qs = qs.order_by('id').select_subclasses(
            models.Coverage, models.Mosaic
        )
        coverages = [
            from_model(coverage)
            for coverage in qs
        ]
    else:
        coverages = []
    if inc_dataset_series:
        cql_text = decoder.datasetseriescql
        if cql_text:
            qs = models.EOObject.objects.all()
            mapping, mapping_choices = filters.get_field_mapping_for_model(
                qs.model  # TODO: mapping to Collection/Product would be better
            )
            ast = parse(cql_text)
            filter_expressions = to_filter(ast, mapping, mapping_choices)
        else:
            filter_expressions = {}
        dataset_series = chain(
            models.Collection.objects.exclude(
                service_visibility__service='wcs',
                service_visibility__visibility=False
            ).filter(**filter_expressions).only(
                "identifier", "begin_time", "end_time", "footprint"
            ),
            models.Product.objects.filter(
                service_visibility__service='wcs',
                service_visibility__visibility=True
            ).filter(**filter_expressions).only(
                "identifier", "begin_time", "end_time", "footprint"
            ),
        )
    else:
        dataset_series = models.EOObject.objects.none()
    return coverages, dataset_series