@@ -401,9 +401,9 @@ enum FunctionsConstants {
401
401
402
402
do {
403
403
let rawData = try await fetcher. beginFetch ( )
404
- return try callableResult ( fromResponseData: rawData)
404
+ return try callableResult ( fromResponseData: rawData, endpointURL : url )
405
405
} catch {
406
- throw processedError ( fromResponseError: error)
406
+ throw processedError ( fromResponseError: error, endpointURL : url )
407
407
}
408
408
}
409
409
@@ -454,10 +454,10 @@ enum FunctionsConstants {
454
454
fetcher. beginFetch { [ self ] data, error in
455
455
let result : Result < HTTPSCallableResult , any Error >
456
456
if let error {
457
- result = . failure( processedError ( fromResponseError: error) )
457
+ result = . failure( processedError ( fromResponseError: error, endpointURL : url ) )
458
458
} else if let data {
459
459
do {
460
- result = try . success( callableResult ( fromResponseData: data) )
460
+ result = try . success( callableResult ( fromResponseData: data, endpointURL : url ) )
461
461
} catch {
462
462
result = . failure( error)
463
463
}
@@ -523,11 +523,14 @@ enum FunctionsConstants {
523
523
return fetcher
524
524
}
525
525
526
- private func processedError( fromResponseError error: any Error ) -> any Error {
526
+ private func processedError( fromResponseError error: any Error ,
527
+ endpointURL url: URL ) -> any Error {
527
528
let error = error as NSError
528
529
let localError : ( any Error ) ? = if error. domain == kGTMSessionFetcherStatusDomain {
529
530
FunctionsError (
530
531
httpStatusCode: error. code,
532
+ region: region,
533
+ url: url,
531
534
body: error. userInfo [ " data " ] as? Data ,
532
535
serializer: serializer
533
536
)
@@ -538,16 +541,23 @@ enum FunctionsConstants {
538
541
return localError ?? error
539
542
}
540
543
541
- private func callableResult( fromResponseData data: Data ) throws -> HTTPSCallableResult {
542
- let processedData = try processedData ( fromResponseData: data)
544
+ private func callableResult( fromResponseData data: Data ,
545
+ endpointURL url: URL ) throws -> HTTPSCallableResult {
546
+ let processedData = try processedData ( fromResponseData: data, endpointURL: url)
543
547
let json = try responseDataJSON ( from: processedData)
544
548
let payload = try serializer. decode ( json)
545
549
return HTTPSCallableResult ( data: payload)
546
550
}
547
551
548
- private func processedData( fromResponseData data: Data ) throws -> Data {
552
+ private func processedData( fromResponseData data: Data , endpointURL url : URL ) throws -> Data {
549
553
// `data` might specify a custom error. If so, throw the error.
550
- if let bodyError = FunctionsError ( httpStatusCode: 200 , body: data, serializer: serializer) {
554
+ if let bodyError = FunctionsError (
555
+ httpStatusCode: 200 ,
556
+ region: region,
557
+ url: url,
558
+ body: data,
559
+ serializer: serializer
560
+ ) {
551
561
throw bodyError
552
562
}
553
563
0 commit comments