Skip to content

Commit fa15918

Browse files
committed
Make TemplateOptions, Tacking and DeliveryOptions optional
1 parent aa02b5e commit fa15918

File tree

3 files changed

+18
-24
lines changed

3 files changed

+18
-24
lines changed

Sources/send/Request/Message/DeliveryOptions.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,23 @@ public struct DeliveryOptions: Sendable, Equatable, Codable {
1717

1818
extension Message {
1919
public func addHeader(_ name: String, _ value: String) -> Self {
20-
var merged = delivery.headers ?? [:]
20+
var merged = delivery?.headers ?? [:]
2121
merged[name] = value
2222

2323
let updatedDelivery = DeliveryOptions(
24-
priority: delivery.priority,
24+
priority: delivery?.priority,
2525
headers: merged
2626
)
2727

2828
return withUpdatedDelivery(updatedDelivery)
2929
}
3030

3131
public func addHeaders(_ newHeaders: [String: String]) -> Self {
32-
var merged = delivery.headers ?? [:]
32+
var merged = delivery?.headers ?? [:]
3333
for (k, v) in newHeaders { merged[k] = v }
3434

3535
let updatedDelivery = DeliveryOptions(
36-
priority: delivery.priority,
36+
priority: delivery?.priority,
3737
headers: merged
3838
)
3939

@@ -43,7 +43,7 @@ extension Message {
4343
public func withPriority(_ priority: Int?) -> Self {
4444
let updatedDelivery = DeliveryOptions(
4545
priority: priority,
46-
headers: delivery.headers
46+
headers: delivery?.headers
4747
)
4848

4949
return withUpdatedDelivery(updatedDelivery)

Sources/send/Request/Message/Message.swift

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@ import Foundation
33
public struct Message: Sendable, Equatable, Codable {
44
public let envelope: Envelope
55
public let content: Content
6-
public let template: TemplateOptions
7-
public let tracking: Tracking
8-
public let delivery: DeliveryOptions
6+
public let template: TemplateOptions?
7+
public let tracking: Tracking?
8+
public let delivery: DeliveryOptions?
99

1010
public init(
1111
envelope: Envelope,
1212
content: Content,
13-
template: TemplateOptions = TemplateOptions(),
14-
tracking: Tracking = Tracking(),
15-
delivery: DeliveryOptions = DeliveryOptions()
13+
template: TemplateOptions? = nil,
14+
tracking: Tracking? = nil,
15+
delivery: DeliveryOptions? = nil
1616
) {
1717
self.envelope = envelope
1818
self.content = content
@@ -24,9 +24,9 @@ public struct Message: Sendable, Equatable, Codable {
2424
public func encode(to encoder: Encoder) throws {
2525
try envelope.encode(to: encoder)
2626
try content.encode(to: encoder)
27-
try template.encode(to: encoder)
28-
try tracking.encode(to: encoder)
29-
try delivery.encode(to: encoder)
27+
if let template { try template.encode(to: encoder) }
28+
if let tracking { try tracking.encode(to: encoder) }
29+
if let delivery { try delivery.encode(to: encoder) }
3030
}
3131

3232
public init(from decoder: Decoder) throws {
@@ -41,20 +41,14 @@ public struct Message: Sendable, Equatable, Codable {
4141
public init(from: Recipient, to: Recipient, subject: String, textPart: String) {
4242
self.init(
4343
envelope: Envelope(from: from, to: [to]),
44-
content: Content(subject: subject, textPart: textPart),
45-
template: TemplateOptions(),
46-
tracking: Tracking(),
47-
delivery: DeliveryOptions()
44+
content: Content(subject: subject, textPart: textPart)
4845
)
4946
}
5047

5148
public init(from: Recipient, to: Recipient, subject: String, htmlPart: String) {
5249
self.init(
5350
envelope: Envelope(from: from, to: [to]),
54-
content: Content(subject: subject, htmlPart: htmlPart),
55-
template: TemplateOptions(),
56-
tracking: Tracking(),
57-
delivery: DeliveryOptions()
51+
content: Content(subject: subject, htmlPart: htmlPart)
5852
)
5953
}
6054
}

Sources/send/Request/Message/TemplateOptions.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Foundation
22

33
public struct TemplateOptions: Sendable, Equatable, Codable {
4-
public let templateID: UInt64?
4+
public let templateID: UInt64
55
public let templateLanguage: Bool?
66
public let templateErrorReporting: Recipient?
77
public let templateErrorDeliver: Bool?
@@ -16,7 +16,7 @@ public struct TemplateOptions: Sendable, Equatable, Codable {
1616
}
1717

1818
public init(
19-
templateID: UInt64? = nil,
19+
templateID: UInt64,
2020
templateLanguage: Bool? = nil,
2121
templateErrorReporting: Recipient? = nil,
2222
templateErrorDeliver: Bool? = nil,

0 commit comments

Comments
 (0)