Skip to content

Commit 2d2baed

Browse files
committed
Add ReadOnlyConvertible conformance
1 parent 307e368 commit 2d2baed

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import Foundation
2+
import Storage
3+
4+
5+
// MARK: - Storage.Booking: ReadOnlyConvertible
6+
//
7+
extension Storage.Booking: ReadOnlyConvertible {
8+
9+
/// Updates the Storage.Booking with the a ReadOnly.
10+
///
11+
public func update(with booking: Yosemite.Booking) {
12+
siteID = booking.siteID
13+
bookingID = booking.bookingID
14+
allDay = booking.allDay
15+
cost = booking.cost
16+
customerID = booking.customerID
17+
dateCreated = booking.dateCreated
18+
dateModified = booking.dateModified
19+
endDate = booking.endDate
20+
googleCalendarEventID = booking.googleCalendarEventID
21+
orderID = booking.orderID
22+
orderItemID = booking.orderItemID
23+
parentID = booking.parentID
24+
productID = booking.productID
25+
resourceID = booking.resourceID
26+
startDate = booking.startDate
27+
statusKey = booking.statusKey
28+
localTimezone = booking.localTimezone
29+
}
30+
31+
/// Returns a ReadOnly version of the receiver.
32+
///
33+
public func toReadOnly() -> Yosemite.Booking {
34+
Booking(siteID: siteID,
35+
bookingID: bookingID,
36+
allDay: allDay,
37+
cost: cost ?? "",
38+
customerID: customerID,
39+
dateCreated: dateCreated ?? Date(),
40+
dateModified: dateModified ?? Date(),
41+
endDate: endDate ?? Date(),
42+
googleCalendarEventID: googleCalendarEventID,
43+
orderID: orderID,
44+
orderItemID: orderItemID,
45+
parentID: parentID,
46+
productID: productID,
47+
resourceID: resourceID,
48+
startDate: startDate ?? Date(),
49+
statusKey: statusKey ?? "",
50+
localTimezone: localTimezone ?? "")
51+
}
52+
}

Modules/Sources/Yosemite/Model/Model.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public typealias BlazeTargetLanguage = Networking.BlazeTargetLanguage
2525
public typealias BlazeTargetOptions = Networking.BlazeTargetOptions
2626
public typealias BlazeTargetLocation = Networking.BlazeTargetLocation
2727
public typealias BlazeTargetTopic = Networking.BlazeTargetTopic
28+
public typealias Booking = Networking.Booking
2829
public typealias CreateBlazeCampaign = Networking.CreateBlazeCampaign
2930
public typealias FallibleCancelable = Hardware.FallibleCancelable
3031
public typealias CommentStatus = Networking.CommentStatus
@@ -265,6 +266,7 @@ public typealias StorageBlazeCampaignListItem = Storage.BlazeCampaignListItem
265266
public typealias StorageBlazeTargetDevice = Storage.BlazeTargetDevice
266267
public typealias StorageBlazeTargetLanguage = Storage.BlazeTargetLanguage
267268
public typealias StorageBlazeTargetTopic = Storage.BlazeTargetTopic
269+
public typealias StorageBooking = Storage.Booking
268270
public typealias StorageCardReaderType = Storage.CardReaderType
269271
public typealias StorageCoupon = Storage.Coupon
270272
public typealias StorageCustomer = Storage.Customer

0 commit comments

Comments
 (0)