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