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