Trendsic Platform Service

<back to all web services

IncomingCRMConversationRequest

The following routes are available for this service:
POST,OPTIONS/v1/conversation/crm/reply
import Foundation
import ServiceStack

public class IncomingCRMConversationRequest : SmsRequest
{
    required public init(){ super.init() }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
    }
}

public class SmsRequest : TwilioRequest
{
    public var messageSid:String
    public var smsSid:String
    public var body:String
    public var messageStatus:String
    public var optOutType:String
    public var messagingServiceSid:String
    public var numMedia:Int
    public var referralNumMedia:Int

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case messageSid
        case smsSid
        case body
        case messageStatus
        case optOutType
        case messagingServiceSid
        case numMedia
        case referralNumMedia
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        messageSid = try container.decodeIfPresent(String.self, forKey: .messageSid)
        smsSid = try container.decodeIfPresent(String.self, forKey: .smsSid)
        body = try container.decodeIfPresent(String.self, forKey: .body)
        messageStatus = try container.decodeIfPresent(String.self, forKey: .messageStatus)
        optOutType = try container.decodeIfPresent(String.self, forKey: .optOutType)
        messagingServiceSid = try container.decodeIfPresent(String.self, forKey: .messagingServiceSid)
        numMedia = try container.decodeIfPresent(Int.self, forKey: .numMedia)
        referralNumMedia = try container.decodeIfPresent(Int.self, forKey: .referralNumMedia)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if messageSid != nil { try container.encode(messageSid, forKey: .messageSid) }
        if smsSid != nil { try container.encode(smsSid, forKey: .smsSid) }
        if body != nil { try container.encode(body, forKey: .body) }
        if messageStatus != nil { try container.encode(messageStatus, forKey: .messageStatus) }
        if optOutType != nil { try container.encode(optOutType, forKey: .optOutType) }
        if messagingServiceSid != nil { try container.encode(messagingServiceSid, forKey: .messagingServiceSid) }
        if numMedia != nil { try container.encode(numMedia, forKey: .numMedia) }
        if referralNumMedia != nil { try container.encode(referralNumMedia, forKey: .referralNumMedia) }
    }
}

public class TwilioRequest : Codable
{
    public var accountSid:String
    public var from:String
    public var to:String
    public var fromCity:String
    public var fromState:String
    public var fromZip:String
    public var fromCountry:String
    public var toCity:String
    public var toState:String
    public var toZip:String
    public var toCountry:String

    required public init(){}
}


Swift IncomingCRMConversationRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/conversation/crm/reply HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"MessageSid":"String","SmsSid":"String","Body":"String","MessageStatus":"String","OptOutType":"String","MessagingServiceSid":"String","NumMedia":0,"ReferralNumMedia":0,"AccountSid":"String","From":"String","To":"String","FromCity":"String","FromState":"String","FromZip":"String","FromCountry":"String","ToCity":"String","ToState":"String","ToZip":"String","ToCountry":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

(string)