Skip to content

Commit d3dd70e

Browse files
committed
Merge branch 'trunk' into woomob-1332-add-support-for-network-switching-in-pos
2 parents 38f00ea + 42063c4 commit d3dd70e

File tree

73 files changed

+3262
-435
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+3262
-435
lines changed

Modules/Sources/Fakes/Networking.generated.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1774,7 +1774,10 @@ extension Networking.Site {
17741774
isAdmin: .fake(),
17751775
wasEcommerceTrial: .fake(),
17761776
hasSSOEnabled: .fake(),
1777-
applicationPasswordAvailable: .fake()
1777+
applicationPasswordAvailable: .fake(),
1778+
isGarden: false,
1779+
gardenName: nil,
1780+
gardenPartner: nil
17781781
)
17791782
}
17801783
}

Modules/Sources/Networking/Model/Copiable/Models+Copiable.generated.swift

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2747,7 +2747,10 @@ extension Networking.Site {
27472747
isAdmin: CopiableProp<Bool> = .copy,
27482748
wasEcommerceTrial: CopiableProp<Bool> = .copy,
27492749
hasSSOEnabled: CopiableProp<Bool> = .copy,
2750-
applicationPasswordAvailable: CopiableProp<Bool> = .copy
2750+
applicationPasswordAvailable: CopiableProp<Bool> = .copy,
2751+
isGarden: CopiableProp<Bool> = .copy,
2752+
gardenName: CopiableProp<String?> = .copy,
2753+
gardenPartner: CopiableProp<String?> = .copy
27512754
) -> Networking.Site {
27522755
let siteID = siteID ?? self.siteID
27532756
let name = name ?? self.name
@@ -2772,6 +2775,9 @@ extension Networking.Site {
27722775
let wasEcommerceTrial = wasEcommerceTrial ?? self.wasEcommerceTrial
27732776
let hasSSOEnabled = hasSSOEnabled ?? self.hasSSOEnabled
27742777
let applicationPasswordAvailable = applicationPasswordAvailable ?? self.applicationPasswordAvailable
2778+
let isGarden = isGarden ?? self.isGarden
2779+
let gardenName = gardenName ?? self.gardenName
2780+
let gardenPartner = gardenPartner ?? self.gardenPartner
27752781

27762782
return Networking.Site(
27772783
siteID: siteID,
@@ -2796,7 +2802,10 @@ extension Networking.Site {
27962802
isAdmin: isAdmin,
27972803
wasEcommerceTrial: wasEcommerceTrial,
27982804
hasSSOEnabled: hasSSOEnabled,
2799-
applicationPasswordAvailable: applicationPasswordAvailable
2805+
applicationPasswordAvailable: applicationPasswordAvailable,
2806+
isGarden: isGarden,
2807+
gardenName: gardenName,
2808+
gardenPartner: gardenPartner
28002809
)
28012810
}
28022811
}

Modules/Sources/Networking/Model/Site.swift

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,18 @@ public struct Site: Decodable, Equatable, Hashable, GeneratedFakeable, Generated
9797
///
9898
public let applicationPasswordAvailable: Bool
9999

100+
/// Whether the site is running on Garden architecture
101+
///
102+
public let isGarden: Bool
103+
104+
/// The site Garden name is present
105+
///
106+
public let gardenName: String?
107+
108+
/// The site Garden partner if present
109+
///
110+
public let gardenPartner: String?
111+
100112
/// Decodable Conformance.
101113
///
102114
public init(from decoder: Decoder) throws {
@@ -140,6 +152,10 @@ public struct Site: Decodable, Equatable, Hashable, GeneratedFakeable, Generated
140152
return jetpackModules.contains(OptionKeys.sso.rawValue) == true
141153
}()
142154

155+
let isGarden = try siteContainer.decodeIfPresent(Bool.self, forKey: .isGarden) ?? false
156+
let gardenName = try siteContainer.decodeIfPresent(String.self, forKey: .gardenName)
157+
let gardenPartner = try siteContainer.decodeIfPresent(String.self, forKey: .gardenPartner)
158+
143159
self.init(siteID: siteID,
144160
name: name,
145161
description: description,
@@ -162,7 +178,10 @@ public struct Site: Decodable, Equatable, Hashable, GeneratedFakeable, Generated
162178
isAdmin: isAdmin,
163179
wasEcommerceTrial: wasEcommerceTrial,
164180
hasSSOEnabled: hasSSOEnabled,
165-
applicationPasswordAvailable: false) // to be updated by fetching SiteAPI
181+
applicationPasswordAvailable: false, // to be updated by fetching SiteAPI
182+
isGarden: isGarden,
183+
gardenName: gardenName,
184+
gardenPartner: gardenPartner)
166185
}
167186

168187
/// Designated Initializer.
@@ -189,7 +208,10 @@ public struct Site: Decodable, Equatable, Hashable, GeneratedFakeable, Generated
189208
isAdmin: Bool,
190209
wasEcommerceTrial: Bool,
191210
hasSSOEnabled: Bool,
192-
applicationPasswordAvailable: Bool) {
211+
applicationPasswordAvailable: Bool,
212+
isGarden: Bool,
213+
gardenName: String?,
214+
gardenPartner: String?) {
193215
self.siteID = siteID
194216
self.name = name
195217
self.description = description
@@ -213,6 +235,9 @@ public struct Site: Decodable, Equatable, Hashable, GeneratedFakeable, Generated
213235
self.wasEcommerceTrial = wasEcommerceTrial
214236
self.hasSSOEnabled = hasSSOEnabled
215237
self.applicationPasswordAvailable = applicationPasswordAvailable
238+
self.isGarden = isGarden
239+
self.gardenName = gardenName
240+
self.gardenPartner = gardenPartner
216241
}
217242
}
218243

@@ -264,6 +289,9 @@ private extension Site {
264289
case isJetpackConnected = "jetpack_connection"
265290
case wasEcommerceTrial = "was_ecommerce_trial"
266291
case jetpackModules = "jetpack_modules"
292+
case isGarden = "is_garden"
293+
case gardenName = "garden_name"
294+
case gardenPartner = "garden_partner"
267295
}
268296

269297
enum PlanInfo: String, CodingKey {

Modules/Sources/Networking/Model/WordPressSite.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,10 @@ public extension WordPressSite {
110110
isAdmin: false,
111111
wasEcommerceTrial: false,
112112
hasSSOEnabled: false,
113-
applicationPasswordAvailable: false)
113+
applicationPasswordAvailable: false,
114+
isGarden: false,
115+
gardenName: nil,
116+
gardenPartner: nil)
114117
}
115118

116119
struct Authentication: Decodable {

Modules/Sources/Networking/Remote/SiteRemote.swift

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -338,12 +338,37 @@ extension SiteRemote {
338338
enum SiteParameter {
339339
enum Fields {
340340
static let key = "fields"
341-
static let value = "ID,name,description,URL,options,jetpack,jetpack_connection,capabilities,was_ecommerce_trial,plan,jetpack_modules"
341+
static let value = [
342+
"ID",
343+
"name",
344+
"description",
345+
"URL",
346+
"options",
347+
"jetpack",
348+
"jetpack_connection",
349+
"capabilities",
350+
"was_ecommerce_trial",
351+
"plan",
352+
"jetpack_modules",
353+
"is_garden",
354+
"garden_name",
355+
"garden_partner"
356+
].joined(separator: ",")
342357
}
343358
enum Options {
344359
static let key = "options"
345-
static let value =
346-
"timezone,is_wpcom_store,woocommerce_is_active,gmt_offset,jetpack_connection_active_plugins,admin_url,login_url,frame_nonce,blog_public,can_blaze"
360+
static let value = [
361+
"timezone",
362+
"is_wpcom_store",
363+
"woocommerce_is_active",
364+
"gmt_offset",
365+
"jetpack_connection_active_plugins",
366+
"admin_url",
367+
"login_url",
368+
"frame_nonce",
369+
"blog_public",
370+
"can_blaze"
371+
].joined(separator: ",")
347372
}
348373
}
349374
}

Modules/Sources/NetworkingCore/Remote/OrdersRemote.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,24 @@ public extension OrdersRemote {
598598
case customerID
599599
case currency
600600
}
601+
602+
/// Loads a single order asynchronously for POS
603+
/// - Parameters:
604+
/// - siteID: Site for which we'll fetch the order.
605+
/// - orderID: ID of the order to load.
606+
/// - Returns: The loaded Order.
607+
/// - Throws: Network or parsing errors.
608+
func loadPOSOrder(siteID: Int64, orderID: Int64) async throws -> Order {
609+
let path = "\(Constants.ordersPath)/\(orderID)"
610+
let request = JetpackRequest(wooApiVersion: .mark3,
611+
method: .get,
612+
siteID: siteID,
613+
path: path,
614+
availableAsRESTRequest: true)
615+
let mapper = OrderMapper(siteID: siteID)
616+
617+
return try await enqueue(request, mapper: mapper)
618+
}
601619
}
602620

603621
private extension OrdersRemote.OrderCreationSource {

Modules/Sources/NetworkingCore/Remote/POSOrdersRemoteProtocol.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public protocol POSOrdersRemoteProtocol {
1919
order: Order,
2020
fields: [OrdersRemote.CreateOrderField]) async throws -> Order
2121

22+
func loadPOSOrder(siteID: Int64, orderID: Int64) async throws -> Order
23+
2224
func loadPOSOrders(siteID: Int64,
2325
pageNumber: Int,
2426
pageSize: Int) async throws -> PagedItems<Order>

Modules/Sources/Storage/Model/MIGRATIONS.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
This file documents changes in the WCiOS Storage data model. Please explain any changes to the data model as well as any custom migrations.
44

5+
## Model 126 (Release 23.3.0.0)
6+
- @rafaelkayumov 2025-09-15
7+
- Added `isGarden` attribute to `Site` entity.
8+
- Added `gardenName` attribute to `Site` entity.
9+
- Added `gardenPartner` attribute to `Site` entity.
10+
511
## Model 125 (Release 23.2.0.0)
612
- @itsmeichigo 2025-09-04
713
- Added `hazmatCategory` attribute to `ShippingLabel` entity.

Modules/Sources/Storage/Model/Site+CoreDataProperties.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ extension Site {
2929
@NSManaged public var canBlaze: Bool
3030
@NSManaged public var wasEcommerceTrial: Bool
3131
@NSManaged public var hasSSOEnabled: Bool
32+
@NSManaged public var isGarden: Bool
33+
@NSManaged public var gardenName: String?
34+
@NSManaged public var gardenPartner: String?
3235

3336
}
3437

Modules/Sources/Storage/Resources/WooCommerce.xcdatamodeld/.xccurrentversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
<plist version="1.0">
44
<dict>
55
<key>_XCCurrentVersionName</key>
6-
<string>Model 125.xcdatamodel</string>
6+
<string>Model 126.xcdatamodel</string>
77
</dict>
88
</plist>

0 commit comments

Comments
 (0)