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 .xml suffix or ?format=xml

HTTP + XML

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: application/xml
Content-Type: application/xml
Content-Length: length

<DashboardCsvReportsRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.ServiceModel">
  <Filters xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringReportFilterI2Pv2xeL>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.Shared.POCO">
        <d4p1:End>0001-01-01T00:00:00</d4p1:End>
        <d4p1:HigherThan>0</d4p1:HigherThan>
        <d4p1:LowerThan>0</d4p1:LowerThan>
        <d4p1:Start>0001-01-01T00:00:00</d4p1:Start>
        <d4p1:Type>list</d4p1:Type>
        <d4p1:Values i:nil="true" />
      </d2p1:Value>
    </d2p1:KeyValueOfstringReportFilterI2Pv2xeL>
  </Filters>
  <ReportName>String</ReportName>
</DashboardCsvReportsRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<DashboardReportResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.Shared.POCO">
  <ReportResult xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
  <TotalCount>0</TotalCount>
</DashboardReportResult>