Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Sources/DataConnectError.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,7 @@ public enum DataConnectError: Error {

/// timestamp components specified to initialize Timestamp are invalid
case invalidTimestampFormat

/// generic operation execution error
case operationExecutionFailed
}
10 changes: 10 additions & 0 deletions Sources/Internal/GrpcClient.swift
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,12 @@ actor GrpcClient: CustomStringConvertible {
let resultsString = try results.jsonString()
DataConnectLogger
.debug("executeQuery() receives response: \(resultsString, privacy: .private).")

// Not doing error decoding here
guard results.errors.isEmpty else {
throw DataConnectError.operationExecutionFailed
}

if let decodedResults = try codec.decode(result: results.data, asType: resultType) {
return OperationResult(data: decodedResults)
} else {
Expand Down Expand Up @@ -191,6 +196,11 @@ actor GrpcClient: CustomStringConvertible {
let resultsString = try results.jsonString()
DataConnectLogger
.debug("executeMutation() receives response: \(resultsString, privacy: .private).")

guard results.errors.isEmpty else {
throw DataConnectError.operationExecutionFailed
}

if let decodedResults = try codec.decode(result: results.data, asType: resultType) {
return OperationResult(data: decodedResults)
} else {
Expand Down
Loading