BokaMera.API.Host

<back to all web services

NewsletterCustomerQuery

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin, bookingsupplier-administrator-read
The following routes are available for this service:
GET/newsletter/customersGet all customers that are valid for sending newsletters to.Get all customers that are valid for sending newsletters to.
namespace BokaMera.API.ServiceModel.Dtos

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type NewsletterCustomerInfo() = 
        member val Id:Guid = new Guid() with get,set
        member val Firstname:String = null with get,set
        member val Lastname:String = null with get,set
        member val Email:String = null with get,set
        member val Phone:String = null with get,set
        member val FacebookUserName:String = null with get,set
        member val ImageUrl:Uri = null with get,set

    [<AllowNullLiteral>]
    type NewsletterCustomerQueryResponse() = 
        member val Id:Guid = new Guid() with get,set
        member val Customer:NewsletterCustomerInfo = null with get,set

    [<ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)>]
    [<ValidateRequest(Validator="IsAuthenticated")>]
    [<AllowNullLiteral>]
    type NewsletterCustomerQuery() = 
        ///<summary>
        ///The company id, if empty will use the company id for the user you are logged in with.
        ///</summary>
        [<ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///Search for customer has done minimum number of bookings.
        ///</summary>
        [<ApiMember(Description="Search for customer has done minimum number of bookings.")>]
        member val CustomerMinBookings:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///Search for customer has done maximum number of bookings.
        ///</summary>
        [<ApiMember(Description="Search for customer has done maximum number of bookings.")>]
        member val CustomerMaxBookings:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///Search for customer has booked any of the service in the list (List contain service id's).
        ///</summary>
        [<ApiMember(Description="Search for customer has booked any of the service in the list (List contain service id's).")>]
        member val BookedServiceIds:Int32[] = [||] with get,set

        ///<summary>
        ///Search interval From datetime .
        ///</summary>
        [<ApiMember(Description="Search interval From datetime .")>]
        member val From:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///Search interval To datetime .
        ///</summary>
        [<ApiMember(Description="Search interval To datetime .")>]
        member val To:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///The max number of records you want to collect
        ///</summary>
        [<ApiMember(Description="The max number of records you want to collect")>]
        member val MaxRecords:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///If you want to include the full customer information in the response
        ///</summary>
        [<ApiMember(Description="If you want to include the full customer information in the response")>]
        member val IncludeCustomerInformation:Boolean = new Boolean() with get,set

F# NewsletterCustomerQuery 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.

GET /newsletter/customers HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Customer":{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","FacebookUserName":"String"}}