executeWrite method
Execute a write operation via the backend API
Implementation
Future<int> executeWrite(
String query, {
List<SqlParameter>? parameters,
}) async {
_ensureConfigured();
try {
final response = await http.post(
Uri.parse('${_apiBaseUrl}execute'),
headers: {
'Content-Type': 'application/json',
if (_authToken != null) 'Authorization': 'Bearer $_authToken',
},
body: jsonEncode({
'query': query,
if (parameters != null)
'parameters': parameters
.map((p) => {
'name': p.name,
'value': p.value,
'type': p.type?.sqlTypeName,
})
.toList(),
}),
);
if (response.statusCode == 200) {
final result = jsonDecode(response.body);
return (result['affected'] as num?)?.toInt() ?? 0;
} else {
throw QueryException(
'Write operation failed',
query: query,
details: 'HTTP ${response.statusCode}: ${response.body}',
);
}
} catch (e) {
if (e is QueryException) rethrow;
throw QueryException(
'Write operation failed',
query: query,
details: e.toString(),
);
}
}