Skip to content

Commit a610141

Browse files
committed
Merge branch '370-pace-drive-business-starter-new-sdk-handlers' into 'master'
Resolve "[PACE Drive Business Starter] New SDK Handlers" Closes #370 See merge request pace/mobile/ios/pace-cloud-sdk!425
2 parents 71376bc + 3638c58 commit a610141

File tree

128 files changed

+766
-690
lines changed

Some content is hidden

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

128 files changed

+766
-690
lines changed

PACECloudSDK.xcodeproj/project.pbxproj

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,14 @@
12111211
9AD092BA2817E1C9000A3CB3 /* DateCalculationsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD092B92817E1C9000A3CB3 /* DateCalculationsTests.swift */; };
12121212
9AD092BB28181FDE000A3CB3 /* Date+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B5504122539E81F00C291F1 /* Date+Extension.swift */; };
12131213
9AD092BC2818227B000A3CB3 /* DateComponents+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD092B528170D88000A3CB3 /* DateComponents+Extension.swift */; };
1214+
CB85FF772C80CCBD00551A77 /* ReceiptEmailResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB85FF752C80CCBD00551A77 /* ReceiptEmailResult.swift */; };
1215+
CB85FF782C80CCBD00551A77 /* ReceiptAttachmentsResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB85FF762C80CCBD00551A77 /* ReceiptAttachmentsResult.swift */; };
1216+
CB85FF792C80CCC300551A77 /* ReceiptAttachmentsResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB85FF762C80CCBD00551A77 /* ReceiptAttachmentsResult.swift */; };
1217+
CB85FF7A2C80CCC500551A77 /* ReceiptEmailResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB85FF752C80CCBD00551A77 /* ReceiptEmailResult.swift */; };
1218+
CB85FF7D2C80CDC400551A77 /* ReceiptAttachmentsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB85FF7B2C80CDC400551A77 /* ReceiptAttachmentsRequest.swift */; };
1219+
CB85FF7E2C80CDC400551A77 /* ReceiptEmailRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB85FF7C2C80CDC400551A77 /* ReceiptEmailRequest.swift */; };
1220+
CB85FF7F2C80CDCE00551A77 /* ReceiptAttachmentsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB85FF7B2C80CDC400551A77 /* ReceiptAttachmentsRequest.swift */; };
1221+
CB85FF802C80CDD000551A77 /* ReceiptEmailRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB85FF7C2C80CDC400551A77 /* ReceiptEmailRequest.swift */; };
12141222
/* End PBXBuildFile section */
12151223

12161224
/* Begin PBXContainerItemProxy section */
@@ -1861,6 +1869,10 @@
18611869
9AD092B32816D340000A3CB3 /* ISO8601DateFormatter+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ISO8601DateFormatter+Extension.swift"; sourceTree = "<group>"; };
18621870
9AD092B528170D88000A3CB3 /* DateComponents+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DateComponents+Extension.swift"; sourceTree = "<group>"; };
18631871
9AD092B92817E1C9000A3CB3 /* DateCalculationsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateCalculationsTests.swift; sourceTree = "<group>"; };
1872+
CB85FF752C80CCBD00551A77 /* ReceiptEmailResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReceiptEmailResult.swift; sourceTree = "<group>"; };
1873+
CB85FF762C80CCBD00551A77 /* ReceiptAttachmentsResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReceiptAttachmentsResult.swift; sourceTree = "<group>"; };
1874+
CB85FF7B2C80CDC400551A77 /* ReceiptAttachmentsRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReceiptAttachmentsRequest.swift; sourceTree = "<group>"; };
1875+
CB85FF7C2C80CDC400551A77 /* ReceiptEmailRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReceiptEmailRequest.swift; sourceTree = "<group>"; };
18641876
/* End PBXFileReference section */
18651877

18661878
/* Begin PBXFrameworksBuildPhase section */
@@ -2538,6 +2550,8 @@
25382550
3B98701E268E06AE00A0458F /* Response */ = {
25392551
isa = PBXGroup;
25402552
children = (
2553+
CB85FF762C80CCBD00551A77 /* ReceiptAttachmentsResult.swift */,
2554+
CB85FF752C80CCBD00551A77 /* ReceiptEmailResult.swift */,
25412555
3B987026268E06AE00A0458F /* AppInterceptableLinkResult.swift */,
25422556
3B987027268E06AE00A0458F /* ApplePayAvailabilityCheckResult.swift */,
25432557
3B987024268E06AE00A0458F /* AppRedirectResult.swift */,
@@ -2575,6 +2589,8 @@
25752589
3B987038268E06AE00A0458F /* Request */ = {
25762590
isa = PBXGroup;
25772591
children = (
2592+
CB85FF7B2C80CDC400551A77 /* ReceiptAttachmentsRequest.swift */,
2593+
CB85FF7C2C80CDC400551A77 /* ReceiptEmailRequest.swift */,
25782594
3B918049268F434500176ECD /* ApplePayAvailabilityCheckRequest.swift */,
25792595
3B98703A268E06AE00A0458F /* AppRedirectRequest.swift */,
25802596
3B98703D268E06AE00A0458F /* DisableRequest.swift */,
@@ -4242,6 +4258,7 @@
42424258
841A3EF225B9C96A0065284A /* PCFuelingFuelPrice.swift in Sources */,
42434259
9A906BA3284637D700463618 /* PCPayPaymentMethodRequest.swift in Sources */,
42444260
9A906BB7284637D700463618 /* PCPayPaymentToken.swift in Sources */,
4261+
CB85FF772C80CCBD00551A77 /* ReceiptEmailResult.swift in Sources */,
42454262
9A906BB3284637D700463618 /* PCPayApplePaySession.swift in Sources */,
42464263
92843A0A25B1A2DF004CF9D6 /* QueryParamUTMHandler.swift in Sources */,
42474264
92EDDED525AC7E0000E480F4 /* Bundle+Resource.swift in Sources */,
@@ -4456,6 +4473,7 @@
44564473
3B7C0C08266A594400346FCC /* UserAPISetFederatedIdentity.swift in Sources */,
44574474
3BB208852538338A008DDE45 /* IDKitError.swift in Sources */,
44584475
3B7569F92B69063C00CB836F /* PCPayPaymentMethodOMVCreateRequest.swift in Sources */,
4476+
CB85FF7D2C80CDC400551A77 /* ReceiptAttachmentsRequest.swift in Sources */,
44594477
3BA4807E2565492600187D0A /* IDKitUserAgent.swift in Sources */,
44604478
3B2FB1C92844EB2800E8CD0C /* PCUserUser.swift in Sources */,
44614479
3BC9A8102539DDAD00B933AE /* VectorTiles+Feature.swift in Sources */,
@@ -4539,6 +4557,7 @@
45394557
84600E9625C03B0C0087194F /* PayAPIRequestApplePaySession.swift in Sources */,
45404558
8447A39D25CAAE740095BEF1 /* UserAPIClient.swift in Sources */,
45414559
3B970A7F2542D9BB0072F6BA /* ButtonRectangular.swift in Sources */,
4560+
CB85FF782C80CCBD00551A77 /* ReceiptAttachmentsResult.swift in Sources */,
45424561
3B987065268E06AE00A0458F /* IntrospectResult.swift in Sources */,
45434562
3B7569FD2B69065700CB836F /* PayAPICreatePaymentMethodLogpaysandbox.swift in Sources */,
45444563
8447A3AB25CAAE740095BEF1 /* UserAPIGetTerms.swift in Sources */,
@@ -4692,6 +4711,7 @@
46924711
843A86D825C2BC040062B124 /* FuelingAPIClient+URLProtocol.swift in Sources */,
46934712
3B5A3CE62A4C74D600F83F93 /* App+MessageHandling+GooglePay.swift in Sources */,
46944713
3B3FC8F327FED6E7008B3F7F /* PACECloudSDKDelegate.swift in Sources */,
4714+
CB85FF7E2C80CDC400551A77 /* ReceiptEmailRequest.swift in Sources */,
46954715
3BDBA7232BF396F1006C0151 /* PCPOICommonCountryId.swift in Sources */,
46964716
84E1AC3C2562800D00C673EF /* Result+Value.swift in Sources */,
46974717
84600EFC25C03B1E0087194F /* POIAPIGetGasStationFuelTypeNameMapping.swift in Sources */,
@@ -4797,6 +4817,7 @@
47974817
3B98706E268E06AE00A0458F /* VerifyLocationResult.swift in Sources */,
47984818
92EDDC0625A7270300E480F4 /* URLRequestError.swift in Sources */,
47994819
3B5B379B29F0327B0095C152 /* ReplyHandler.swift in Sources */,
4820+
CB85FF802C80CDD000551A77 /* ReceiptEmailRequest.swift in Sources */,
48004821
3B6254D22B0E2836008FAB25 /* UIViewController+Extension.swift in Sources */,
48014822
3B5A3CE72A4C74D600F83F93 /* App+MessageHandling+GooglePay.swift in Sources */,
48024823
3BA074CF292F96D5003A389C /* MetaCollector.swift in Sources */,
@@ -4931,6 +4952,7 @@
49314952
92EDDC1D25A7270300E480F4 /* AppStyle+Colors.swift in Sources */,
49324953
3B98706C268E06AE00A0458F /* SetSecureDataResult.swift in Sources */,
49334954
92EDDC0D25A7270300E480F4 /* UIImage+Extension.swift in Sources */,
4955+
CB85FF792C80CCC300551A77 /* ReceiptAttachmentsResult.swift in Sources */,
49344956
3B987054268E06AE00A0458F /* BackResult.swift in Sources */,
49354957
3B68269F27BA93EB00933C95 /* IDKitUserAgentType.swift in Sources */,
49364958
92EDDBE725A726AD00E480F4 /* AppKit+Configuration.swift in Sources */,
@@ -4939,6 +4961,7 @@
49394961
3B8E3D682654F24700E0A6D1 /* URLSessionConfiguration+Extension.swift in Sources */,
49404962
92EDDBEC25A7270300E480F4 /* AppKitConstants.swift in Sources */,
49414963
3B987066268E06AE00A0458F /* IntrospectResult.swift in Sources */,
4964+
CB85FF7A2C80CCC500551A77 /* ReceiptEmailResult.swift in Sources */,
49424965
3BEECBCC26402EA000A8EA56 /* URLRequest+Extension.swift in Sources */,
49434966
9AD092BC2818227B000A3CB3 /* DateComponents+Extension.swift in Sources */,
49444967
8492C7F227510687001A4D7B /* WebViewController.swift in Sources */,
@@ -4960,6 +4983,7 @@
49604983
8418E29925B1B85E00D3722B /* APIResult.swift in Sources */,
49614984
3BABEFF527C8E8AD002256CB /* IDKitError.swift in Sources */,
49624985
3BA074D1292F96D8003A389C /* MetaCollectorData.swift in Sources */,
4986+
CB85FF7F2C80CDCE00551A77 /* ReceiptAttachmentsRequest.swift in Sources */,
49634987
3B98708E268E06AE00A0458F /* SetSecureDataRequest.swift in Sources */,
49644988
3B5A3CE42A4C741200F83F93 /* GooglePayAvailabilityCheckResult.swift in Sources */,
49654989
92EDDC2425A7270300E480F4 /* App.swift in Sources */,

PACECloudSDK/API/Communication/Generated/CommunicationProtocol.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,7 @@ protocol CommunicationProtocol: AnyObject {
3434
func handleGooglePayPayment(with request: API.Communication.GooglePayPaymentRequest, completion: @escaping (API.Communication.GooglePayPaymentResult) -> Void)
3535
func handleStartNavigation(with request: API.Communication.StartNavigationRequest, completion: @escaping (API.Communication.StartNavigationResult) -> Void)
3636
func handleShareFile(with request: API.Communication.ShareFileRequest, completion: @escaping (API.Communication.ShareFileResult) -> Void)
37+
func handleReceiptEmail(with request: API.Communication.ReceiptEmailRequest, completion: @escaping (API.Communication.ReceiptEmailResult) -> Void)
38+
func handleReceiptAttachments(with request: API.Communication.ReceiptAttachmentsRequest, completion: @escaping (API.Communication.ReceiptAttachmentsResult) -> Void)
3739
func respond(with response: String)
3840
}

PACECloudSDK/API/Communication/Generated/MessageHandler.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,18 @@ extension API.Communication {
228228
delegate?.handleShareFile(with: requestBody) { [weak self] result in
229229
self?.handleResult(with: result, response: response, operation: operation, with: replyHandler)
230230
}
231+
232+
case .receiptEmail:
233+
guard let requestBody: ReceiptEmailRequest = decodeRequestBody(request, response, operation, with: replyHandler) else { return }
234+
delegate?.handleReceiptEmail(with: requestBody) { [weak self] result in
235+
self?.handleResult(with: result, response: response, operation: operation, with: replyHandler)
236+
}
237+
238+
case .receiptAttachments:
239+
guard let requestBody: ReceiptAttachmentsRequest = decodeRequestBody(request, response, operation, with: replyHandler) else { return }
240+
delegate?.handleReceiptAttachments(with: requestBody) { [weak self] result in
241+
self?.handleResult(with: result, response: response, operation: operation, with: replyHandler)
242+
}
231243
}
232244
}
233245

PACECloudSDK/API/Communication/Generated/Models/Operation.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,7 @@ extension API.Communication {
3636
case googlePayPayment
3737
case startNavigation
3838
case shareFile
39+
case receiptEmail
40+
case receiptAttachments
3941
}
4042
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//
2+
// Generated by SwiftPoet
3+
// https://github.com/outfoxx/swiftpoet
4+
//
5+
import Foundation
6+
7+
public extension API.Communication {
8+
/**
9+
* Asks the client for optional attachments to be included in the fueling receipt. */
10+
struct ReceiptAttachmentsRequest: Codable {
11+
/**
12+
* The id of the user payment method. */
13+
public let paymentMethod: String
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//
2+
// Generated by SwiftPoet
3+
// https://github.com/outfoxx/swiftpoet
4+
//
5+
import Foundation
6+
7+
public extension API.Communication {
8+
/**
9+
* Asks the client for an optional additional receipt email. */
10+
struct ReceiptEmailRequest: Codable {
11+
/**
12+
* The id of the user payment method. */
13+
public let paymentMethod: String
14+
}
15+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
//
2+
// Generated by SwiftPoet
3+
// https://github.com/outfoxx/swiftpoet
4+
//
5+
import Foundation
6+
7+
public extension API.Communication {
8+
/**
9+
* Asks the client for optional attachments to be included in the fueling receipt. */
10+
struct ReceiptAttachmentsResponse: Codable {
11+
/**
12+
* The attachments. Each item represents a new line on the receipt. */
13+
public let attachments: [String]?
14+
15+
public init(attachments: [String]?) {
16+
self.attachments = attachments
17+
}
18+
}
19+
}
20+
21+
extension API.Communication {
22+
class ReceiptAttachmentsError: Error {}
23+
24+
class ReceiptAttachmentsResult: Result {
25+
init(_ success: Success) {
26+
super.init(status: 200, body: .init(success.response))
27+
}
28+
29+
init(_ failure: Failure) {
30+
super.init(status: failure.statusCode.rawValue, body: .init(failure.response))
31+
}
32+
33+
struct Success {
34+
let response: ReceiptAttachmentsResponse
35+
}
36+
37+
struct Failure {
38+
let statusCode: StatusCode
39+
let response: ReceiptAttachmentsError
40+
41+
enum StatusCode: Int {
42+
case badRequest = 400
43+
case requestTimeout = 408
44+
case internalServerError = 500
45+
}
46+
}
47+
}
48+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
//
2+
// Generated by SwiftPoet
3+
// https://github.com/outfoxx/swiftpoet
4+
//
5+
import Foundation
6+
7+
public extension API.Communication {
8+
/**
9+
* Asks the client for an optional additional receipt email. */
10+
struct ReceiptEmailResponse: Codable {
11+
/**
12+
* The email */
13+
public let email: String?
14+
15+
public init(email: String?) {
16+
self.email = email
17+
}
18+
}
19+
}
20+
21+
extension API.Communication {
22+
class ReceiptEmailError: Error {}
23+
24+
class ReceiptEmailResult: Result {
25+
init(_ success: Success) {
26+
super.init(status: 200, body: .init(success.response))
27+
}
28+
29+
init(_ failure: Failure) {
30+
super.init(status: failure.statusCode.rawValue, body: .init(failure.response))
31+
}
32+
33+
struct Success {
34+
let response: ReceiptEmailResponse
35+
}
36+
37+
struct Failure {
38+
let statusCode: StatusCode
39+
let response: ReceiptEmailError
40+
41+
enum StatusCode: Int {
42+
case badRequest = 400
43+
case requestTimeout = 408
44+
case internalServerError = 500
45+
}
46+
}
47+
}
48+
}

0 commit comments

Comments
 (0)