Mercedes.VehicleManagement.API

<back to all web services

DashboardCsvReportsRequest

Reports
Requires Authentication
The following routes are available for this service:
POST/v1/reports/CsvRetrieve Report by ReportName and Filters and return as CSV
# frozen_string_literal: true
# encoding: utf-8


require 'json'
require 'servicestack'


module ReportFilterType
    LIST = 'list'
    LIST_LIKE = 'list_like'
    DATE = 'date'
    RANGE = 'range'
end

class DashboardReportResult
    include ServiceStack::DTO

    # @return [Integer]
    attr_accessor :total_count
    # @return [IEnumerable]
    attr_accessor :report_result

    def self.properties
        {
            total_count: { name: 'totalCount' },
            report_result: { name: 'reportResult' },
        }
    end

end

class ReportFilter
    include ServiceStack::DTO

    # @return [ReportFilterType]
    attr_accessor :type
    # @return [IEnumerable]
    attr_accessor :values
    # @return [DateTime]
    attr_accessor :start
    # @return [DateTime]
    attr_accessor :end
    # @return [Integer]
    attr_accessor :higher_than
    # @return [Integer]
    attr_accessor :lower_than

    def self.properties
        {
            type: { name: 'type' },
            values: { name: 'values' },
            start: { name: 'start', type: DateTime },
            end: { name: 'end', type: DateTime },
            higher_than: { name: 'higherThan' },
            lower_than: { name: 'lowerThan' },
        }
    end

end

class DashboardCsvReportsRequest
    include ServiceStack::DTO

    # @ApiMember(Description: "Report Name", IsRequired: "true", ParameterType: "body")
    # @return [String]
    attr_accessor :report_name

    # @ApiMember(Description: "Filters", IsRequired: "true", ParameterType: "body")
    # @return [Dictionary]
    attr_accessor :filters

    def self.properties
        {
            report_name: { name: 'reportName' },
            filters: { name: 'filters', type: { String => ReportFilter } },
        }
    end

    def response_type() = DashboardReportResult
    def get_type_name() = 'DashboardCsvReportsRequest'
end

Ruby DashboardCsvReportsRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/reports/Csv HTTP/1.1 
Host: uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"reportName":"String","filters":{"String":{"type":"list","start":"\/Date(-62135596800000-0000)\/","end":"\/Date(-62135596800000-0000)\/","higherThan":0,"lowerThan":0}}}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"totalCount":0}