Cochrane+ App API

<back to all web services

SubmitThunderBoltAction

Requires Authentication
The following routes are available for this service:
POST/thunderbolt/submit
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using WebService.ServiceModel;
using WebService.ServiceModel.Base;
using BusinessLogic.Entities;
using CommonService.Api.Models.Base;
using CommonService.Api.Models.Shared;

namespace BusinessLogic.Entities
{
    public enum ContactInteractionPlatform
    {
        None = 0,
        Whatsapp = 1,
        Linkus = 2,
        Mobile = 3,
        Outlook = 4,
        LinkedIn = 5,
        Telegram = 6,
        Signal = 7,
        Sms = 8,
    }

}

namespace CommonService.Api.Models.Base
{
    public partial class ApiServiceResponse
        : IServiceResponse
    {
        public virtual string Description { get; set; }
        public virtual string Heading { get; set; }
        public virtual bool WasSuccessful { get; set; }
        public virtual Object ModelState { get; set; }
    }

}

namespace CommonService.Api.Models.Shared
{
    public partial class EnumOption
    {
        public virtual int Value { get; set; }
        public virtual string Label { get; set; }
    }

}

namespace WebService.ServiceModel
{
    public partial class ContactData
    {
        public virtual int ContactId { get; set; }
        public virtual string ContactName { get; set; }
        public virtual string Email { get; set; }
        public virtual string PhoneNumber { get; set; }
    }

    public partial class GetThunderBoltActionsResponse
        : ApiServiceResponse
    {
        public GetThunderBoltActionsResponse()
        {
            ThunderBoltActions = new List<ThunderBoltActionData>{};
            ThunderBoltActionEvents = new List<ThunderBoltActionEventData>{};
            Contacts = new List<ContactData>{};
        }

        public virtual int DailyActionsNumber { get; set; }
        public virtual int SupportingDocumentProbability { get; set; }
        public virtual List<ThunderBoltActionData> ThunderBoltActions { get; set; }
        public virtual List<ThunderBoltActionEventData> ThunderBoltActionEvents { get; set; }
        public virtual List<ContactData> Contacts { get; set; }
    }

    public partial class SubmitThunderBoltAction
        : ApiServiceRequest
    {
        public virtual int ActionId { get; set; }
        public virtual ContactInteractionPlatform Platform { get; set; }
        public virtual string Number { get; set; }
        public virtual string Email { get; set; }
        public virtual string Notes { get; set; }
        public virtual DateTime DateTime { get; set; }
        public virtual int ContactId { get; set; }
    }

    public partial class SubmitThunderBoltActionResponse
        : GetThunderBoltActionsResponse
    {
        public virtual int ThunderboltActionEventId { get; set; }
    }

    public partial class ThunderBoltActionData
    {
        public ThunderBoltActionData()
        {
            ContactInteractionPlatforms = new List<EnumOption>{};
        }

        public virtual int Id { get; set; }
        public virtual string ActionName { get; set; }
        public virtual string Color { get; set; }
        public virtual int DailyActionCount { get; set; }
        public virtual bool ShowNumberInput { get; set; }
        public virtual bool ShowEmailInput { get; set; }
        public virtual bool ShowPlatformInput { get; set; }
        public virtual bool ShowDateTimeInput { get; set; }
        public virtual List<EnumOption> ContactInteractionPlatforms { get; set; }
    }

    public partial class ThunderBoltActionEventData
    {
        public virtual int Id { get; set; }
        public virtual string CreatedDate { get; set; }
        public virtual int ActionId { get; set; }
        public virtual string ActionName { get; set; }
        public virtual string Color { get; set; }
        public virtual string Notes { get; set; }
    }

}

namespace WebService.ServiceModel.Base
{
    public partial class ApiServiceRequest
        : IServiceRequest, IHasApiKey, IHasDeviceInfo
    {
        ///<summary>
        ///The API Key required for authentication
        ///</summary>
        [ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)]
        public virtual string ApiKey { get; set; }

        ///<summary>
        ///Latitude of the user making this request
        ///</summary>
        [ApiMember(DataType="double", Description="Latitude of the user making this request")]
        public virtual double Latitude { get; set; }

        ///<summary>
        ///Longitude of the user making this request
        ///</summary>
        [ApiMember(DataType="double", Description="Longitude of the user making this request")]
        public virtual double Longitude { get; set; }
    }

}

C# SubmitThunderBoltAction DTOs

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

HTTP + JSV

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/jsv
Content-Type: text/jsv
Content-Length: length

{
	actionId: 0,
	platform: 0,
	number: String,
	email: String,
	notes: String,
	dateTime: 0001-01-01,
	contactId: 0,
	apiKey: String,
	latitude: 0,
	longitude: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
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: {}
}