buildWorkerErrorResponse function

  1. @visibleForTesting
WorkerResponse buildWorkerErrorResponse(
  1. WorkerRequest request,
  2. String error
)

Response sent when a worker WorkerRequest fails with an exception.

Isolated for unit tests — production path uses _sendErrorResponse.

Implementation

@visibleForTesting
WorkerResponse buildWorkerErrorResponse(WorkerRequest request, String error) {
  final id = request.requestId;
  switch (request) {
    case InitializeRequest():
      return InitializeResponse(id, success: false);
    case ValidateConnectionStringRequest():
      return ValidateConnectionStringResponse(
        id,
        isValid: false,
        errorMessage: error,
      );
    case ConnectRequest():
      return ConnectResponse(id, 0, error: error);
    case DisconnectRequest():
    case CancelStatementRequest():
    case CloseStatementRequest():
    case PoolReleaseConnectionRequest():
    case PoolHealthCheckRequest():
    case PoolSetSizeRequest():
    case PoolCloseRequest():
    case SetLogLevelRequest():
    case CommitTransactionRequest():
    case RollbackTransactionRequest():
    case SavepointCreateRequest():
    case SavepointRollbackRequest():
    case SavepointReleaseRequest():
    case AuditEnableRequest():
    case AuditClearRequest():
    case AsyncCancelRequest():
    case AsyncFreeRequest():
    case StreamCancelRequest():
    case MetadataCacheEnableRequest():
    case MetadataCacheClearRequest():
      return BoolResponse(id, value: false);
    case ExecuteQueryParamsRequest():
    case ExecuteQueryMultiRequest():
    case ExecuteQueryMultiParamsRequest():
    case ExecutePreparedRequest():
    case CatalogTablesRequest():
    case CatalogColumnsRequest():
    case CatalogTypeInfoRequest():
    case CatalogPrimaryKeysRequest():
    case CatalogForeignKeysRequest():
    case CatalogIndexesRequest():
    case AsyncGetResultRequest():
      return QueryResponse(id, error: error);
    case BeginTransactionRequest():
    case PrepareRequest():
    case PoolCreateRequest():
    case PoolGetConnectionRequest():
    case StreamStartRequest():
    case StreamStartBatchedRequest():
    case StreamStartAsyncRequest():
    case StreamMultiStartBatchedRequest():
    case StreamMultiStartAsyncRequest():
    case ClearAllStatementsRequest():
    case ExecuteAsyncStartRequest():
    case AsyncPollRequest():
    case StreamPollAsyncRequest():
      return IntResponse(id, 0);
    case StreamFetchRequest():
      return StreamFetchResponse(
        id,
        success: false,
        error: error,
      );
    case StreamCloseRequest():
      return BoolResponse(id, value: false);
    case BulkInsertArrayRequest():
    case BulkInsertParallelRequest():
      return IntResponse(id, -1);
    case PoolGetStateRequest():
      return PoolStateResponse(id, error: error);
    case GetDriverCapabilitiesRequest():
    case GetConnectionDbmsInfoRequest():
    case PoolGetStateJsonRequest():
      return AuditPayloadResponse(id, error: error);
    case GetVersionRequest():
      return VersionResponse(id);
    case GetMetricsRequest():
      return MetricsResponse(id, error: error);
    case GetErrorRequest():
      return GetErrorResponse(id, error);
    case GetStructuredErrorRequest():
    case GetStructuredErrorForConnectionRequest():
      return StructuredErrorResponse(id, message: error, error: error);
    case DetectDriverRequest():
      return DetectDriverResponse(id, null);
    case AuditGetEventsRequest():
    case AuditGetStatusRequest():
    case MetadataCacheStatsRequest():
      return AuditPayloadResponse(id, error: error);
    case GetCacheMetricsRequest():
      return CacheMetricsResponse(id, error: error);
    case ClearCacheRequest():
      return ClearCacheResponse(id, error: error);
  }
}