def METHOD_NAME(report_type, report_slug, user_id, domain, request_data):
    config = ReportConfig()
    # see ReportConfig.query_string()
    object.__setattr__(config, '_id', 'dummy')
    config.name = _("Emailed report")
    config.report_type = report_type
    config.report_slug = report_slug
    config.owner_id = user_id
    config.domain = domain
    GET = dict(six.iterlists(request_data['GET']))
    exclude = ['startdate', 'enddate', 'subject', 'send_to_owner', 'notes', 'recipient_emails']
    filters = {}
    for field in GET:
        if field == 'params':
            params = unquote(GET.get(field)[0])
            params = params.split('&')
            for param in params:
                key, value = tuple(param.split('=', 1))
                if key in filters:
                    filters[key] = filters[key] + [value] if isinstance(filters[key], list) \
                        else [filters[key]] + [value]
                else:
                    filters[key] = value
        if field not in exclude:
            filters[field] = GET.get(field) or filters[field]
    config.filters = filters
    if 'startdate' in config.filters and report_slug != 'project_health':
        config.start_date = datetime.strptime(config.filters['startdate'], '%Y-%m-%d').date()
        if 'enddate' in config.filters:
            config.date_range = 'range'
            config.end_date = datetime.strptime(config.filters['enddate'], '%Y-%m-%d').date()
        else:
            config.date_range = 'since'
    return config