8000 Address review comments · firebase/firebase-ios-sdk@bdacb29 · GitHub
[go: up one dir, main page]

Skip to content

Commit bdacb29

Browse files
committed
Address review comments
1 parent 7652861 commit bdacb29

File tree

2 files changed

+31
-46
lines changed

2 files changed

+31
-46
lines changed

FirebaseFunctionsSwift/Sources/Codable/Callable+Codable.swift

Lines changed: 18 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,6 @@ public extension Functions {
3636
-> Callable<Request, Response> {
3737
return Callable(callable: httpsCallable(name), encoder: encoder, decoder: decoder)
3838
}
39-
40-
/// Creates a reference to the Callable HTTPS trigger with the given name. The types of the `Encodable`
41-
/// request and tyhe `Decodable` response will be inferred by the compiler.
42-
///
43-
/// At the call site, use the following syntax:
44-
///
45-
/// let greeter: Callable<DataTestRequest, DataTestResponse> = functions.httpsCallable("greeter")
46-
/// try greeter(data) { result in
47-
/// print(result.greeting)
48-
/// }
49-
///
50-
/// - Parameters:
51-
/// - name: The name of the Callable HTTPS trigger
52-
func httpsCallable<Request, Response>(_ name: String,
53-
encoder: StructureEncoder = StructureEncoder(),
54-
decoder: StructureDecoder = StructureDecoder())
55-
-> Callable<Request, Response> where Request: Encodable, Response: Decodable {
56-
return Callable(callable: httpsCallable(name), encoder: encoder, decoder: decoder)
57-
}
5839
}
5940

6041
/**
@@ -107,22 +88,26 @@ public struct Callable<Request: Encodable, Response: Decodable> {
10788
*/
10889
public func call(_ data: Request,
10990
completion: @escaping (Result<Response, Error>)
110-
-> Void) throws {
111-
let encoded = try encoder.encode(data)
91+
-> Void) {
92+
do {
93+
let encoded = try encoder.encode(data)
11294

113-
callable.call(encoded) { result, error in
114-
do {
115-
if let result = result {
116-
let decoded = try decoder.decode(Response.self, from: result.data)
117-
completion(.success(decoded))
118-
} else if let error = error {
95+
callable.call(encoded) { result, error in
96+
do {
97+
if let result = result {
98+
let decoded = try decoder.decode(Response.self, from: result.data)
99+
completion(.success(decoded))
100+
} else if let error = error {
101+
completion(.failure(error))
102+
} else {
103+
completion(.failure(CallableError.internalError))
104+
}
105+
} catch {
119106
completion(.failure(error))
120-
} else {
121-
completion(.failure(CallableError.internalError))
122107
}
123-
} catch {
124-
completion(.failure(error))
125108
}
109+
} catch {
110+
completion(.failure(error))
126111
}
127112
}
128113

@@ -142,8 +127,8 @@ public struct Callable<Request: Encodable, Response: Decodable> {
142127
/// - completion: The block to call when the HTTPS request has completed.
143128
public func callAsFunction(_ data: Request,
144129
completion: @escaping (Result<Response, Error>)
145-
-> Void) throws {
146-
try call(data, completion: completion)
130+
-> Void) {
131+
call(data, completion: completion)
147132
}
148133

149134
#if compiler(>=5.5) && canImport(_Concurrency)

FirebaseFunctionsSwift/Tests/IntegrationTests.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class IntegrationTests: XCTestCase {
8888
let function = functions.httpsCallable("dataTest",
8989
requestAs: DataTestRequest.self,
9090
responseAs: DataTestResponse.self)
91-
try function.call(data) { result in
91+
function.call(data) { result in
9292
do {
9393
let response = try result.get()
9494
let expected = DataTestResponse(
@@ -138,7 +138,7 @@ class IntegrationTests: XCTestCase {
138138
requestAs: Int16.self,
139139
responseAs: Int.self
140140
)
141-
try function.call(17) { result in
141+
function.call(17) { result in
142142
do {
143143
let response = try result.get()
144144
XCTAssertEqual(response, 76)
@@ -189,7 +189,7 @@ class IntegrationTests: XCTestCase {
189189
responseAs: [String: Int].self
190190
)
191191
XCTAssertNotNil(function)
192-
try function.call([:]) { result in
192+
function.call([:]) { result in
193193
do {
194194
let data = try result.get()
195195
XCTAssertEqual(data, [:])
@@ -231,7 +231,7 @@ class IntegrationTests: XCTestCase {
231231
requestAs: [String: Int].self,
232232
responseAs: [String: Int].self
233233
)
234-
try function.call([:]) { result in
234+
function.call([:]) { result in
235235
do {
236236
let data = try result.get()
237237
XCTAssertEqual(data, [:])
@@ -264,7 +264,7 @@ class IntegrationTests: XCTestCase {
264264
requestAs: Int?.self,
265265
responseAs: Int?.self
266266
)
267-
try function.call(nil) { result in
267+
function.call(nil) { result in
268268
do {
269269
let data = try result.get()
270270
XCTAssertEqual(data, nil)
@@ -305,7 +305,7 @@ class IntegrationTests: XCTestCase {
305305
requestAs: Int?.self,
306306
responseAs: Int?.self
307307
)
308-
try function.call(nil) { result in
308+
function.call(nil) { result in
309309
do {
310310
_ = try result.get()
311311
} catch {
@@ -344,7 +344,7 @@ class IntegrationTests: XCTestCase {
344344
requestAs: [Int].self,
345345
responseAs: Int.self
346346
)
347-
try function.call([]) { result in
347+
function.call([]) { result in
348348
do {
349349
_ = try result.get()
350350
} catch {
@@ -384,7 +384,7 @@ class IntegrationTests: XCTestCase {
384384
requestAs: [Int].self,
385385
responseAs: Int.self
386386
)
387-
try function.call([]) { result in
387+
function.call([]) { result in
388388
do {
389389
_ = try result.get()
390390
} catch {
@@ -423,7 +423,7 @@ class IntegrationTests: XCTestCase {
423423
requestAs: [Int].self,
424424
responseAs: Int.self
425425
)
426-
try function.call([]) { result in
426+
function.call([]) { result in
427427
do {
428428
_ = try result.get()
429429
} catch {
@@ -467,7 +467,7 @@ class IntegrationTests: XCTestCase {
467467
responseAs: Int.self
468468
)
469469
XCTAssertNotNil(function)
470-
try function.call([]) { result in
470+
function.call([]) { result in
471471
do {
472472
_ = try result.get()
473473
} catch {
@@ -505,7 +505,7 @@ class IntegrationTests: XCTestCase {
505505
responseAs: Int.self
506506
)
507507
function.timeoutInterval = 0.05
508-
try function.call([]) { result in
508+
function.call([]) { result in
509509
do {
510510
_ = try result.get()
511511
} catch {
@@ -553,7 +553,7 @@ class IntegrationTests: XCTestCase {
553553
let function = functions.httpsCallable("dataTest",
554554
requestAs: DataTestRequest.self,
555555
responseAs: DataTestResponse.self)
556-
try function(data) { result in
556+
function(data) { result in
557557
do {
558558
let response = try result.get()
559559
let expected = DataTestResponse(
@@ -608,7 +608,7 @@ class IntegrationTests: XCTestCase {
608608
)
609609
let function: Callable<DataTestRequest, DataTestResponse> = functions.httpsCallable("dataTest")
610610

611-
try function(data) { result in
611+
function(data) { result in
612612
do {
613613
let response = try result.get()
614614
let expected = DataTestResponse(

0 commit comments

Comments
 (0)
0