Trendsic Platform Service

<back to all web services

IncomingSMSWebhookHandleAll

The following routes are available for this service:
POST,OPTIONS/v1/sms/handleall
import Foundation
import ServiceStack

public class IncomingSMSWebhookHandleAll : 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 IncomingSMSWebhookHandleAll DTOs

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

HTTP + JSV

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

POST /v1/sms/handleall HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
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/jsv
Content-Length: length

(string)