Skip to content

Commit 2924896

Browse files
committed
5976 Code review suggestions on Charges Yosemite
1 parent ffac145 commit 2924896

File tree

1 file changed

+34
-17
lines changed

1 file changed

+34
-17
lines changed

Yosemite/Yosemite/Stores/CardPresentPaymentStore.swift

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ private extension CardPresentPaymentStore {
529529
remote.fetchCharge(for: siteID, chargeID: chargeID) { result in
530530
switch result {
531531
case .success(let charge):
532-
self.upsertChargeInBackground(readonlyCharge: charge)
532+
self.upsertCharge(readonlyCharge: charge)
533533
completion(.success(charge))
534534
case .failure(let error):
535535
if case .noSuchChargeError(_) = WCPayChargesError(underlyingError: error) {
@@ -564,35 +564,52 @@ private extension CardPresentPaymentStore {
564564
storage.saveIfNeeded()
565565
}
566566

567-
func upsertChargeInBackground(readonlyCharge: WCPayCharge) {
567+
func upsertCharge(readonlyCharge: WCPayCharge) {
568568
let storage = storageManager.viewStorage
569-
let storageWCPayCharge = storage.loadWCPayCharge(siteID: readonlyCharge.siteID, chargeID: readonlyCharge.id) ??
570-
storage.insertNewObject(ofType: Storage.WCPayCharge.self)
569+
let storageWCPayCharge = existingOrNewWCPayCharge(siteID: readonlyCharge.siteID, chargeID: readonlyCharge.id, in: storage)
571570

572571
switch readonlyCharge.paymentMethodDetails {
573572
case .cardPresent(let details):
574-
let storageCardPresentDetails = storageWCPayCharge.cardPresentDetails ??
575-
storage.insertNewObject(ofType: Storage.WCPayCardPresentPaymentDetails.self)
576-
let storageReceiptDetails = storageCardPresentDetails.receipt ?? storage.insertNewObject(ofType: Storage.WCPayCardPresentReceiptDetails.self)
577-
storageCardPresentDetails.update(with: details)
578-
storageReceiptDetails.update(with: details.receipt)
579-
storageCardPresentDetails.receipt = storageReceiptDetails
580-
storageWCPayCharge.cardPresentDetails = storageCardPresentDetails
581-
storageWCPayCharge.cardDetails = nil
573+
upsertCardPresentDetails(details, for: storageWCPayCharge, in: storage)
582574
case .card(let details):
583-
let storageCardDetails = storageWCPayCharge.cardDetails ?? storage.insertNewObject(ofType: Storage.WCPayCardPaymentDetails.self)
584-
storageCardDetails.update(with: details)
585-
storageWCPayCharge.cardDetails = storageCardDetails
586-
storageWCPayCharge.cardPresentDetails = nil
575+
upsertCardDetails(details, for: storageWCPayCharge, in: storage)
587576
case .unknown:
588577
storageWCPayCharge.cardDetails = nil
589578
storageWCPayCharge.cardPresentDetails = nil
590-
break
591579
}
592580

593581
storageWCPayCharge.update(with: readonlyCharge)
594582
}
595583

584+
private func existingOrNewWCPayCharge(siteID: Int64, chargeID: String, in storage: StorageType) -> Storage.WCPayCharge {
585+
storage.loadWCPayCharge(siteID: siteID, chargeID: chargeID) ?? storage.insertNewObject(ofType: Storage.WCPayCharge.self)
586+
}
587+
588+
private func upsertCardPresentDetails(_ details: WCPayCardPresentPaymentDetails,
589+
for storageWCPayCharge: Storage.WCPayCharge,
590+
in storage: StorageType) {
591+
let storageCardPresentDetails = storageWCPayCharge.cardPresentDetails ?? storage.insertNewObject(ofType: Storage.WCPayCardPresentPaymentDetails.self)
592+
let storageReceiptDetails = storageCardPresentDetails.receipt ?? storage.insertNewObject(ofType: Storage.WCPayCardPresentReceiptDetails.self)
593+
594+
storageCardPresentDetails.update(with: details)
595+
storageReceiptDetails.update(with: details.receipt)
596+
597+
storageCardPresentDetails.receipt = storageReceiptDetails
598+
599+
storageWCPayCharge.cardPresentDetails = storageCardPresentDetails
600+
storageWCPayCharge.cardDetails = nil
601+
}
602+
603+
private func upsertCardDetails(_ details: WCPayCardPaymentDetails,
604+
for storageWCPayCharge: Storage.WCPayCharge,
605+
in storage: StorageType) {
606+
let storageCardDetails = storageWCPayCharge.cardDetails ?? storage.insertNewObject(ofType: Storage.WCPayCardPaymentDetails.self)
607+
storageCardDetails.update(with: details)
608+
609+
storageWCPayCharge.cardDetails = storageCardDetails
610+
storageWCPayCharge.cardPresentDetails = nil
611+
}
612+
596613
func deleteCharge(siteID: Int64, chargeID: String) {
597614
let storage = storageManager.viewStorage
598615
guard let charge = storage.loadWCPayCharge(siteID: siteID, chargeID: chargeID) else {

0 commit comments

Comments
 (0)