CenResService

<back to all web services

ProfileMergePost

The following routes are available for this service:
POST/profile/merge/{SubscriptionId}
import Foundation
import ServiceStack

public class ProfileMergePost : Codable
{
    public var profileMergeContainer:ProfileMergeContainer?
    public var subscriptionId:String?

    required public init(){}
}

public class ProfileMergeContainer : ProfilePurgeContainer
{
    public var winningProfileId:String?
    public var transferredCendynID:String?

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

    private enum CodingKeys : String, CodingKey {
        case winningProfileId
        case transferredCendynID
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        winningProfileId = try container.decodeIfPresent(String.self, forKey: .winningProfileId)
        transferredCendynID = try container.decodeIfPresent(String.self, forKey: .transferredCendynID)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if winningProfileId != nil { try container.encode(winningProfileId, forKey: .winningProfileId) }
        if transferredCendynID != nil { try container.encode(transferredCendynID, forKey: .transferredCendynID) }
    }
}

public class ProfilePurgeContainer : Codable
{
    public var transactionDate:Date?
    public var retiredProfileId:String?
    public var sourceId:ProfileMergePurgeSource?
    public var importSource:String?
    public var importSourceId:String?
    public var cendynPropertyID:String?

    required public init(){}
}

public enum ProfileMergePurgeSource : String, Codable
{
    case Other
    case Messaging
    case DirectDBExtract
    case ReportImport
}

public class Response : Codable
{
    public var statusCode:String?
    public var recordCount:Int?
    public var errorCount:Int?

    required public init(){}
}


Swift ProfileMergePost DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

POST /profile/merge/{SubscriptionId} HTTP/1.1 
Host: cert.cendyn.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"profileMergeContainer":{"winningProfileId":"String","transferredCendynID":"String","transactionDate":"0001-01-01T00:00:00.0000000","retiredProfileId":"String","sourceId":"Other","importSource":"String","importSourceId":"String","cendynPropertyID":"String"},"subscriptionId":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"statusCode":"String","recordCount":0,"errorCount":0}