Cochrane+ App API

<back to all web services

SubmitThunderBoltAction

Requires Authentication
The following routes are available for this service:
POST/thunderbolt/submit
"use strict";
export class ApiServiceRequest {
    /** @param {{apiKey?:string,latitude?:number,longitude?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The API Key required for authentication */
    apiKey;
    /**
     * @type {number}
     * @description Latitude of the user making this request */
    latitude;
    /**
     * @type {number}
     * @description Longitude of the user making this request */
    longitude;
}
export class ApiServiceResponse {
    /** @param {{description?:string,heading?:string,wasSuccessful?:boolean,modelState?:Object}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    description;
    /** @type {string} */
    heading;
    /** @type {boolean} */
    wasSuccessful;
    /** @type {Object} */
    modelState;
}
export class EnumOption {
    /** @param {{value?:number,label?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    value;
    /** @type {string} */
    label;
}
export class ThunderBoltActionData {
    /** @param {{id?:number,actionName?:string,color?:string,dailyActionCount?:number,showNumberInput?:boolean,showEmailInput?:boolean,showPlatformInput?:boolean,showDateTimeInput?:boolean,contactInteractionPlatforms?:EnumOption[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    id;
    /** @type {string} */
    actionName;
    /** @type {string} */
    color;
    /** @type {number} */
    dailyActionCount;
    /** @type {boolean} */
    showNumberInput;
    /** @type {boolean} */
    showEmailInput;
    /** @type {boolean} */
    showPlatformInput;
    /** @type {boolean} */
    showDateTimeInput;
    /** @type {EnumOption[]} */
    contactInteractionPlatforms;
}
export class ThunderBoltActionEventData {
    /** @param {{id?:number,createdDate?:string,actionId?:number,actionName?:string,color?:string,notes?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    id;
    /** @type {string} */
    createdDate;
    /** @type {number} */
    actionId;
    /** @type {string} */
    actionName;
    /** @type {string} */
    color;
    /** @type {string} */
    notes;
}
export class ContactData {
    /** @param {{contactId?:number,contactName?:string,email?:string,phoneNumber?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    contactId;
    /** @type {string} */
    contactName;
    /** @type {string} */
    email;
    /** @type {string} */
    phoneNumber;
}
export class GetThunderBoltActionsResponse extends ApiServiceResponse {
    /** @param {{dailyActionsNumber?:number,supportingDocumentProbability?:number,thunderBoltActions?:ThunderBoltActionData[],thunderBoltActionEvents?:ThunderBoltActionEventData[],contacts?:ContactData[],description?:string,heading?:string,wasSuccessful?:boolean,modelState?:Object}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {number} */
    dailyActionsNumber;
    /** @type {number} */
    supportingDocumentProbability;
    /** @type {ThunderBoltActionData[]} */
    thunderBoltActions;
    /** @type {ThunderBoltActionEventData[]} */
    thunderBoltActionEvents;
    /** @type {ContactData[]} */
    contacts;
}
export class SubmitThunderBoltActionResponse extends GetThunderBoltActionsResponse {
    /** @param {{thunderboltActionEventId?:number,dailyActionsNumber?:number,supportingDocumentProbability?:number,thunderBoltActions?:ThunderBoltActionData[],thunderBoltActionEvents?:ThunderBoltActionEventData[],contacts?:ContactData[],description?:string,heading?:string,wasSuccessful?:boolean,modelState?:Object}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {number} */
    thunderboltActionEventId;
}
/** @typedef {number} */
export var ContactInteractionPlatform;
(function (ContactInteractionPlatform) {
    ContactInteractionPlatform[ContactInteractionPlatform["None"] = 0] = "None"
    ContactInteractionPlatform[ContactInteractionPlatform["Whatsapp"] = 1] = "Whatsapp"
    ContactInteractionPlatform[ContactInteractionPlatform["Linkus"] = 2] = "Linkus"
    ContactInteractionPlatform[ContactInteractionPlatform["Mobile"] = 3] = "Mobile"
    ContactInteractionPlatform[ContactInteractionPlatform["Outlook"] = 4] = "Outlook"
    ContactInteractionPlatform[ContactInteractionPlatform["LinkedIn"] = 5] = "LinkedIn"
    ContactInteractionPlatform[ContactInteractionPlatform["Telegram"] = 6] = "Telegram"
    ContactInteractionPlatform[ContactInteractionPlatform["Signal"] = 7] = "Signal"
    ContactInteractionPlatform[ContactInteractionPlatform["Sms"] = 8] = "Sms"
})(ContactInteractionPlatform || (ContactInteractionPlatform = {}));
export class SubmitThunderBoltAction extends ApiServiceRequest {
    /** @param {{actionId?:number,platform?:ContactInteractionPlatform,number?:string,email?:string,notes?:string,dateTime?:string,contactId?:number,apiKey?:string,latitude?:number,longitude?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {number} */
    actionId;
    /** @type {ContactInteractionPlatform} */
    platform;
    /** @type {string} */
    number;
    /** @type {string} */
    email;
    /** @type {string} */
    notes;
    /** @type {string} */
    dateTime;
    /** @type {number} */
    contactId;
}

JavaScript 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: {}
}