| Requires any of the roles: | Agent, Administrator |
| GET,OPTIONS | /v1/Report/PeraContactTracking/{ParamStartDate}/{ParamEndDate}/{AgentID} | ||
|---|---|---|---|
| GET,OPTIONS | /v1/Report/PeraContactTracking/{ParamStartDate}/{ParamEndDate} |
import Foundation
import ServiceStack
public class PeraContactTrackingRequest : Codable
{
public var paramStartDate:Date
public var paramEndDate:Date
public var agentID:Int
required public init(){}
}
public class PeraContactTrackingResponse : Codable
{
public var responseStatus:ResponseStatus
public var afPeraContact:[PeraContactTracking] = []
required public init(){}
}
public class PeraContactTracking : AFPeraContact
{
public var agent:String
public var followUpDate:Date
public var district:String
public var note:String
public var eventTypeName:String
public var avp:String
public var rvp:String
public var mvp:String
public var sale:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case agent
case followUpDate
case district
case note
case eventTypeName
case avp
case rvp
case mvp
case sale
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
agent = try container.decodeIfPresent(String.self, forKey: .agent)
followUpDate = try container.decodeIfPresent(Date.self, forKey: .followUpDate)
district = try container.decodeIfPresent(String.self, forKey: .district)
note = try container.decodeIfPresent(String.self, forKey: .note)
eventTypeName = try container.decodeIfPresent(String.self, forKey: .eventTypeName)
avp = try container.decodeIfPresent(String.self, forKey: .avp)
rvp = try container.decodeIfPresent(String.self, forKey: .rvp)
mvp = try container.decodeIfPresent(String.self, forKey: .mvp)
sale = try container.decodeIfPresent(String.self, forKey: .sale)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if agent != nil { try container.encode(agent, forKey: .agent) }
if followUpDate != nil { try container.encode(followUpDate, forKey: .followUpDate) }
if district != nil { try container.encode(district, forKey: .district) }
if note != nil { try container.encode(note, forKey: .note) }
if eventTypeName != nil { try container.encode(eventTypeName, forKey: .eventTypeName) }
if avp != nil { try container.encode(avp, forKey: .avp) }
if rvp != nil { try container.encode(rvp, forKey: .rvp) }
if mvp != nil { try container.encode(mvp, forKey: .mvp) }
if sale != nil { try container.encode(sale, forKey: .sale) }
}
}
public class AFPeraContact : Codable
{
public var peraContactId:Int
public var firstName:String
public var lastName:String
public var appointmentDateTime:Date
public var dateCreated:Date
public var agentId:Int
required public init(){}
}
Swift PeraContactTrackingRequest 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.
GET /v1/Report/PeraContactTracking/{ParamStartDate}/{ParamEndDate}/{AgentID} HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
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
}
},
AFPeraContact:
[
{
Agent: String,
FollowUpDate: 0001-01-01,
District: String,
Note: String,
EventTypeName: String,
AVP: String,
RVP: String,
MVP: String,
Sale: String,
PeraContactId: 0,
FirstName: String,
LastName: String,
AppointmentDateTime: 0001-01-01,
DateCreated: 0001-01-01,
AgentId: 0
}
]
}