Cochrane+ App API

<back to all web services

SubmitThunderBoltAction

Requires Authentication
The following routes are available for this service:
POST/thunderbolt/submit
namespace WebService.ServiceModel

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

    [<AllowNullLiteral>]
    type ApiServiceResponse() = 
        member val Description:String = null with get,set
        member val Heading:String = null with get,set
        member val WasSuccessful:Boolean = new Boolean() with get,set
        member val ModelState:Object = null with get,set

    [<AllowNullLiteral>]
    type EnumOption() = 
        member val Value:Int32 = new Int32() with get,set
        member val Label:String = null with get,set

    [<AllowNullLiteral>]
    type ThunderBoltActionData() = 
        member val Id:Int32 = new Int32() with get,set
        member val ActionName:String = null with get,set
        member val Color:String = null with get,set
        member val DailyActionCount:Int32 = new Int32() with get,set
        member val ShowNumberInput:Boolean = new Boolean() with get,set
        member val ShowEmailInput:Boolean = new Boolean() with get,set
        member val ShowPlatformInput:Boolean = new Boolean() with get,set
        member val ShowDateTimeInput:Boolean = new Boolean() with get,set
        member val ContactInteractionPlatforms:ResizeArray<EnumOption> = new ResizeArray<EnumOption>() with get,set

    [<AllowNullLiteral>]
    type ThunderBoltActionEventData() = 
        member val Id:Int32 = new Int32() with get,set
        member val CreatedDate:String = null with get,set
        member val ActionId:Int32 = new Int32() with get,set
        member val ActionName:String = null with get,set
        member val Color:String = null with get,set
        member val Notes:String = null with get,set

    [<AllowNullLiteral>]
    type ContactData() = 
        member val ContactId:Int32 = new Int32() with get,set
        member val ContactName:String = null with get,set
        member val Email:String = null with get,set
        member val PhoneNumber:String = null with get,set

    [<AllowNullLiteral>]
    type GetThunderBoltActionsResponse() = 
        inherit ApiServiceResponse()
        member val DailyActionsNumber:Int32 = new Int32() with get,set
        member val SupportingDocumentProbability:Int32 = new Int32() with get,set
        member val ThunderBoltActions:ResizeArray<ThunderBoltActionData> = new ResizeArray<ThunderBoltActionData>() with get,set
        member val ThunderBoltActionEvents:ResizeArray<ThunderBoltActionEventData> = new ResizeArray<ThunderBoltActionEventData>() with get,set
        member val Contacts:ResizeArray<ContactData> = new ResizeArray<ContactData>() with get,set

    [<AllowNullLiteral>]
    type SubmitThunderBoltActionResponse() = 
        inherit GetThunderBoltActionsResponse()
        member val ThunderboltActionEventId:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type ApiServiceRequest() = 
        ///<summary>
        ///The API Key required for authentication
        ///</summary>
        [<ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)>]
        member val ApiKey:String = null with get,set

        ///<summary>
        ///Latitude of the user making this request
        ///</summary>
        [<ApiMember(DataType="double", Description="Latitude of the user making this request")>]
        member val Latitude:Double = new Double() with get,set

        ///<summary>
        ///Longitude of the user making this request
        ///</summary>
        [<ApiMember(DataType="double", Description="Longitude of the user making this request")>]
        member val Longitude:Double = new Double() with get,set

    type ContactInteractionPlatform =
        | None = 0
        | Whatsapp = 1
        | Linkus = 2
        | Mobile = 3
        | Outlook = 4
        | LinkedIn = 5
        | Telegram = 6
        | Signal = 7
        | Sms = 8

    [<AllowNullLiteral>]
    type SubmitThunderBoltAction() = 
        inherit ApiServiceRequest()
        member val ActionId:Int32 = new Int32() with get,set
        member val Platform:ContactInteractionPlatform = new ContactInteractionPlatform() with get,set
        member val Number:String = null with get,set
        member val Email:String = null with get,set
        member val Notes:String = null with get,set
        member val DateTime:DateTime = new DateTime() with get,set
        member val ContactId:Int32 = new Int32() with get,set

F# SubmitThunderBoltAction 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 /thunderbolt/submit HTTP/1.1 
Host: cochraneplus-api-dev.happen.zone 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"actionId":0,"platform":0,"number":"String","email":"String","notes":"String","dateTime":"0001-01-01T00:00:00.0000000","contactId":0,"apiKey":"String","latitude":0,"longitude":0}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"thunderboltActionEventId":0,"dailyActionsNumber":0,"supportingDocumentProbability":0,"thunderBoltActions":[{"id":0,"actionName":"String","color":"String","dailyActionCount":0,"showNumberInput":false,"showEmailInput":false,"showPlatformInput":false,"showDateTimeInput":false,"contactInteractionPlatforms":[{"value":0,"label":"String"}]}],"thunderBoltActionEvents":[{"id":0,"createdDate":"String","actionId":0,"actionName":"String","color":"String","notes":"String"}],"contacts":[{}],"description":"String","heading":"String","wasSuccessful":false,"modelState":{}}