| Requires any of the roles: | Worker, Agent, Administrator, Worker, Agent, Administrator, Worker, Agent, Administrator, Worker, Agent, Administrator |
| GET,POST,PUT,DELETE,OPTIONS | /v1/ContactHistory/{ContactHistoryId} | ||
|---|---|---|---|
| GET,POST,PUT,DELETE,OPTIONS | /v1/ContactHistory |
import Foundation
import ServiceStack
public class ContactHistoryRequest : Codable
{
public var contactHistory:[ContactHistory] = []
required public init(){}
}
public class ContactHistory : Codable
{
public var contactHistoryId:Int
public var contactId:Int
public var eventId:Int
public var agentId:Int
public var eventDate:Date
public var dateCreated:Date
public var note:String
required public init(){}
}
public class ContactHistoryResponse : Codable
{
public var responseStatus:ResponseStatus
public var contactHistory:[ContactHistoryExtended] = []
required public init(){}
}
public class ContactHistoryExtended : ContactHistory
{
public var eventTypeName:String
public var application:[ActivityTracker_Application] = []
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case eventTypeName
case application
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
eventTypeName = try container.decodeIfPresent(String.self, forKey: .eventTypeName)
application = try container.decodeIfPresent([ActivityTracker_Application].self, forKey: .application) ?? []
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if eventTypeName != nil { try container.encode(eventTypeName, forKey: .eventTypeName) }
if application.count > 0 { try container.encode(application, forKey: .application) }
}
}
public class ActivityTracker_Application : Codable
{
public var contactName:String
public var carriers:String
public var applicationId:Int
public var contactId:Int
public var lifeAP:Double
public var annuityFlow:Double
public var annuityTransfer:Double
public var dateCreated:Date
required public init(){}
}
Swift ContactHistoryRequest 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 /v1/ContactHistory/{ContactHistoryId} HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ContactHistory:
[
{
ContactHistoryId: 0,
ContactId: 0,
EventId: 0,
AgentId: 0,
EventDate: 0001-01-01,
DateCreated: 0001-01-01,
Note: String
}
]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
ContactHistory:
[
{
EventTypeName: String,
Application:
[
{
ContactName: String,
Carriers: String,
ApplicationId: 0,
ContactId: 0,
LifeAP: 0,
AnnuityFlow: 0,
AnnuityTransfer: 0,
DateCreated: 0001-01-01
}
],
ContactHistoryId: 0,
ContactId: 0,
EventId: 0,
AgentId: 0,
EventDate: 0001-01-01,
DateCreated: 0001-01-01,
Note: String
}
]
}