tryThrowDataProxyErrors method
Try throw a PrismaRequestException from a GraphQLResult.
Implementation
void tryThrowDataProxyErrors(Map<String, dynamic> json) {
if (json.containsKey('InteractiveTransactionMisrouted')) {
final Map<String, String> messages = {
'IDParseError': 'Could not parse interactive transaction ID',
'NoQueryEngineFoundError':
'Could not find Query Engine for the specified host and transaction ID',
'TransactionStartError': 'Could not start interactive transaction',
};
throw PrismaRequestException(
message: messages[json['InteractiveTransactionMisrouted']['reason']]!,
engine: this,
);
} else if (json.containsKey('InvalidRequestError')) {
throw PrismaRequestException(
message: json['InvalidRequestError']['reason']!,
engine: this,
);
} else if (json.containsKey('EngineNotStarted')) {
final engineNotStarted = json['EngineNotStarted'];
if (engineNotStarted is! Map) {
return;
} else if (engineNotStarted['reason'] == 'SchemaMissing') {
throw PrismaException(
message: 'Data Proxy: ${engineNotStarted['reason']}',
engine: this,
);
} else if (engineNotStarted['reason'] == 'EngineVersionNotSupported') {
throw PrismaInitializationException(
message: 'Data Proxy: ${engineNotStarted['reason']}',
engine: this,
);
}
final Map<String, dynamic> reason = engineNotStarted['reason'];
if (reason.containsKey('EngineStartupError')) {
throw PrismaInitializationException(
message: 'Data Proxy: ${reason['EngineStartupError']['msg']}',
engine: this,
);
} else if (reason.containsKey('KnownEngineStartupError')) {
throw PrismaInitializationException(
message: 'Data Proxy: ${reason['KnownEngineStartupError']['msg']}',
engine: this,
);
} else if (reason.containsKey('HealthcheckTimeout')) {
throw PrismaInitializationException(
message: 'Data Proxy: Healthcheck timeout',
engine: this,
);
}
}
}