<back to all web services

MapDataRequest

The following routes are available for this service:
All Verbs/RestApi/Sitefinity/Analytics/GetMapData
All Verbs/RestApi/GetMapData
import Foundation
import ServiceStack

public class MapDataRequest : Codable
{
    public var dashboardId:String
    public var relatedDashboardId:String
    public var metrics:[MetricItemDTO] = []
    public var filter:String
    public var dimension:Dimension
    public var jsStartDate:String
    public var jsEndDate:String
    public var selectedMetric:String
    public var region:String
    public var siteId:String
    public var startDate:Date
    public var endDate:Date

    required public init(){}
}

public class MetricItemDTO : Codable
{
    public var name:String
    public var displayName:String
    public var value:Double
    public var unit:String
    public var denominatorMetricName:String
    public var nominatorMetricName:String
    public var showInSelector:Bool

    required public init(){}
}

public enum Dimension : String, Codable
{
    case Browser
    case BrowserVersion
    case City
    case Continent
    case VisitCount
    case Country
    case Date
    case Day
    case DaysSinceLastSession
    case FlashVersion
    case Hostname
    case Hour
    case DeviceCategory
    case JavaEnabled
    case Language
    case Latitude
    case Longitude
    case Month
    case NetworkDomain
    case NetworkLocation
    case PageDepth
    case OperatingSystem
    case OperatingSystemVersion
    case Region
    case ScreenColors
    case ScreenResolution
    case SubContinent
    case UserDefinedValue
    case UserType
    case Week
    case Year
    case AdContent
    case AdGroup
    case AdSlot
    case Campaign
    case Keyword
    case Medium
    case ReferralPath
    case Source
    case ExitPagePath
    case LandingPagePath
    case PagePath
    case PageTitle
    case Affiliation
    case DaysToTransaction
    case ProductCategory
    case ProductName
    case ProductSku
    case TransactionId
    case SearchCategory
    case SearchDestinationPage
    case SearchKeyword
    case SearchKeywordRefinement
    case SearchStartPage
    case SearchUsed
    case EventCategory
    case EventAction
    case EventLabel
}

public class GetDashboardData : Codable
{
    public var controls:[DashBoardControl] = []
    public var layoutTemplateName:String
    public var groupBy:String
    public var metricNames:[MetricItemDTO] = []
    public var errorMessage:String
    public var needsGrouping:Bool
    public var isDrillDown:Bool
    public var dateItems:[KendoItem] = []
    public var nonDateItems:[KendoItem] = []
    public var totalsItem:KendoItem
    public var mapDataTable:[[String]] = []
    public var isMapRequest:Bool
    public var seriesSources:[String:[String]] = [:]
    public var statusCode:Int
    public var suppressMultipleSeries:Bool

    required public init(){}
}

public class DashBoardControl : Codable
{
    public var controlType:String
    public var attributes:[String:String] = [:]
    public var placeholderId:String
    public var displayName:String
    public var series:[SingleSerie] = []
    public var dimensionName:String
    public var relatedDimension:[String] = []
    public var sortbyField:String
    public var sortAsc:Bool

    required public init(){}
}

public class SingleSerie : Codable
{
    public var mainMetric:MetricItemDTO
    public var categoryFormat:String
    public var batch:Bool
    public var isCategory:Bool
    public var seriesName:String
    public var seriesDimensions:[DimensionItem] = []
    public var relatedDimension:String

    required public init(){}
}

// @DataContract
public class DimensionItem : Codable
{
    // @DataMember
    public var value:String

    // @DataMember
    public var name:String

    required public init(){}
}

public class KendoItem : Codable
{
    public var category:String
    public var values:[String:Double] = [:]
    public var group:String
    public var tooltip:String
    public var dimensions:[String:String] = [:]

    required public init(){}
}


Swift MapDataRequest DTOs

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

HTTP + CSV

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

POST /RestApi/Sitefinity/Analytics/GetMapData HTTP/1.1 
Host: www.asg.com.au 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{Unable to show example output for type 'MapDataRequest' using the custom 'csv' filter}One or more errors occurred.
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Controls":[{"ControlType":"String","attributes":{"String":"String"},"PlaceholderId":"String","DisplayName":"String","Series":[{"MainMetric":{"Name":"String","DisplayName":"String","Value":0,"Unit":"String","DenominatorMetricName":"String","NominatorMetricName":"String","ShowInSelector":false},"CategoryFormat":"String","Batch":false,"IsCategory":false,"SeriesName":"String","SeriesDimensions":[{}],"RelatedDimension":"String"}],"DimensionName":"String","RelatedDimension":["String"],"SortbyField":"String","SortAsc":false}],"LayoutTemplateName":"String","GroupBy":"String","MetricNames":[{"Name":"String","DisplayName":"String","Value":0,"Unit":"String","DenominatorMetricName":"String","NominatorMetricName":"String","ShowInSelector":false}],"ErrorMessage":"String","NeedsGrouping":false,"IsDrillDown":false,"DateItems":[{"category":"String","values":{"String":0},"group":"String","tooltip":"String","Dimensions":{"String":"String"}}],"NonDateItems":[{"category":"String","values":{"String":0},"group":"String","tooltip":"String","Dimensions":{"String":"String"}}],"TotalsItem":{"category":"String","values":{"String":0},"group":"String","tooltip":"String","Dimensions":{"String":"String"}},"MapDataTable":[["String"]],"IsMapRequest":false,"SeriesSources":{"String":["String"]},"StatusCode":0,"SuppressMultipleSeries":false}