Files

107 lines
3.7 KiB
Swift

import Foundation
import JSONCodable
/// EmailTemplate
open class EmailTemplate: Codable {
enum CodingKeys: String, CodingKey {
case templateId = "templateId"
case locale = "locale"
case message = "message"
case senderName = "senderName"
case senderEmail = "senderEmail"
case replyToEmail = "replyToEmail"
case replyToName = "replyToName"
case subject = "subject"
}
/// Template type
public let templateId: String
/// Template locale
public let locale: String
/// Template message
public let message: String
/// Name of the sender
public let senderName: String
/// Email of the sender
public let senderEmail: String
/// Reply to email address
public let replyToEmail: String
/// Reply to name
public let replyToName: String
/// Email subject
public let subject: String
init(
templateId: String,
locale: String,
message: String,
senderName: String,
senderEmail: String,
replyToEmail: String,
replyToName: String,
subject: String
) {
self.templateId = templateId
self.locale = locale
self.message = message
self.senderName = senderName
self.senderEmail = senderEmail
self.replyToEmail = replyToEmail
self.replyToName = replyToName
self.subject = subject
}
public required init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.templateId = try container.decode(String.self, forKey: .templateId)
self.locale = try container.decode(String.self, forKey: .locale)
self.message = try container.decode(String.self, forKey: .message)
self.senderName = try container.decode(String.self, forKey: .senderName)
self.senderEmail = try container.decode(String.self, forKey: .senderEmail)
self.replyToEmail = try container.decode(String.self, forKey: .replyToEmail)
self.replyToName = try container.decode(String.self, forKey: .replyToName)
self.subject = try container.decode(String.self, forKey: .subject)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(templateId, forKey: .templateId)
try container.encode(locale, forKey: .locale)
try container.encode(message, forKey: .message)
try container.encode(senderName, forKey: .senderName)
try container.encode(senderEmail, forKey: .senderEmail)
try container.encode(replyToEmail, forKey: .replyToEmail)
try container.encode(replyToName, forKey: .replyToName)
try container.encode(subject, forKey: .subject)
}
public func toMap() -> [String: Any] {
return [
"templateId": templateId as Any,
"locale": locale as Any,
"message": message as Any,
"senderName": senderName as Any,
"senderEmail": senderEmail as Any,
"replyToEmail": replyToEmail as Any,
"replyToName": replyToName as Any,
"subject": subject as Any
]
}
public static func from(map: [String: Any] ) -> EmailTemplate {
return EmailTemplate(
templateId: map["templateId"] as! String,
locale: map["locale"] as! String,
message: map["message"] as! String,
senderName: map["senderName"] as! String,
senderEmail: map["senderEmail"] as! String,
replyToEmail: map["replyToEmail"] as! String,
replyToName: map["replyToName"] as! String,
subject: map["subject"] as! String
)
}
}