Booklinker.API

<back to all web services

GetLinkReportRequest

Requires Authentication
The following routes are available for this service:
GET/v1/links/report
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Booklinker.API.ServiceModel.V1.Requests
Imports Booklinker.API.ServiceModel.V1.Responses
Imports Booklinker.API.ServiceModel.V1.DTOs
Imports Geniuslink.Reporting.Contracts.V1.DTOs
Imports Geniuslink.Reporting.Contracts.V1.DTOs.Items

Namespace Global

    Namespace Booklinker.API.ServiceModel.V1.DTOs

        <DataContract>
        Public Partial Class ClickReport
            <DataMember(Name:="code")>
            Public Overridable Property Code As String

            <DataMember(Name:="reports")>
            Public Overridable Property Reports As Dictionary(Of String, Report)

            <DataMember(Name:="totalClicks")>
            Public Overridable Property TotalClicks As UInt64
        End Class

        <DataContract>
        Public Partial Class Report
            Inherits Report
        End Class
    End Namespace

    Namespace Booklinker.API.ServiceModel.V1.Requests

        <DataContract>
        Public Partial Class GetLinkReportRequest
            <DataMember(Name:="baseCode")>
            Public Overridable Property BaseCode As String
        End Class
    End Namespace

    Namespace Booklinker.API.ServiceModel.V1.Responses

        <DataContract>
        Public Partial Class GetLinkReportResponse
            <DataMember(Name:="reports")>
            Public Overridable Property Report As ClickReport

            <DataMember(Name:="responseStatus")>
            Public Overridable Property ResponseStatus As ResponseStatus
        End Class
    End Namespace

    Namespace Geniuslink.Reporting.Contracts.V1.DTOs

        <DataContract>
        Public Partial Class Error
            <DataMember(Name:="code")>
            Public Overridable Property Code As String
        End Class

        Public Enum GroupBy
            [Default]
            Retailer
            [Date]
        End Enum

        <DataContract>
        Public Partial Class Report
            <DataMember(Name:="data")>
            Public Overridable Property Data As List(Of ReportData)

            <DataMember(Name:="executionTimeMs")>
            Public Overridable Property ExecutionTimeMs As Long

            <DataMember(Name:="totalItems")>
            Public Overridable Property TotalItems As Long

            <DataMember(Name:="errors")>
            Public Overridable Property Errors As List(Of Error)

            <DataMember(Name:="request")>
            Public Overridable Property Request As ReportRequest

            <DataMember(Name:="totalClicks")>
            Public Overridable Property TotalClicks As Long
        End Class

        <DataContract>
        Public Partial Class ReportData
            <DataMember(Name:="id")>
            Public Overridable Property Id As String

            <DataMember(Name:="item")>
            Public Overridable Property Item As Item

            <DataMember(Name:="totalClicks")>
            Public Overridable Property TotalClicks As UInt64

            <DataMember(Name:="clicks")>
            Public Overridable Property ActualClicks As UInt64

            <DataMember(Name:="junkClicks")>
            Public Overridable Property JunkClicks As UInt64

            <DataMember(Name:="spiderClicks")>
            Public Overridable Property SpiderClicks As UInt64

            <DataMember(Name:="dateUtc")>
            Public Overridable Property DateUtc As Date
        End Class

        <DataContract>
        Public Partial Class ReportRequest
            <DataMember(Name:="items")>
            Public Overridable Property Items As IEnumerable(Of String)

            <DataMember(Name:="groupBy")>
            Public Overridable Property GroupBy As IEnumerable(Of GroupBy)

            <DataMember(Name:="attribute")>
            Public Overridable Property Attribute As String

            <DataMember(Name:="type")>
            Public Overridable Property Type As ReportType

            <DataMember(Name:="fromStartUtcInclusive")>
            Public Overridable Property FromStartUtcInclusive As Date

            <DataMember(Name:="fromEndUtcInclusive")>
            Public Overridable Property FromEndUtcInclusive As Date

            <DataMember(Name:="retailers")>
            Public Overridable Property Retailers As IEnumerable(Of String)
        End Class

        Public Enum ReportType
            ShortUrl
            Group
            User
        End Enum
    End Namespace

    Namespace Geniuslink.Reporting.Contracts.V1.DTOs.Items

        <DataContract>
        Public Partial Class Item
            <DataMember(Name:="id")>
            Public Overridable Property Id As String

            <DataMember(Name:="displayName")>
            Public Overridable Property DisplayName As String
        End Class
    End Namespace
End Namespace

VB.NET GetLinkReportRequest DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

GET /v1/links/report HTTP/1.1 
Host: api.booklinker.com 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"reports":{"code":"String","reports":{"String":{"data":[{"id":"String","item":{"id":"String","displayName":"String"},"totalClicks":0,"clicks":0,"junkClicks":0,"spiderClicks":0,"dateUtc":"0001-01-01T00:00:00.0000000"}],"executionTimeMs":0,"totalItems":1,"errors":[{}],"request":{"attribute":"String","type":"ShortUrl","fromStartUtcInclusive":"0001-01-01T00:00:00.0000000","fromEndUtcInclusive":"0001-01-01T00:00:00.0000000"},"totalClicks":0}},"totalClicks":0},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}