sendData method Null safety
Send a newly created Statement to the Database.
Implementation
Future<QueryResult?> sendData(
Statement statement, Function reloadEditScreen) async {
// The session token of the user.
String? token = await safeStorage.read(key: "token");
// If not logged in, return.
if (token == null) {
return null;
}
// Link to server.
final HttpLink httpLink = HttpLink(statementDatabaseUrl, defaultHeaders: {
'X-Parse-Application-Id': statementDatabaseApplicationID,
'X-Parse-Client-Key': statementDatabaseClientKey,
'X-Parse-Session-Token': token,
});
// Provides data from server and facilitates requests.
GraphQLClient client = GraphQLClient(
cache: GraphQLCache(),
link: httpLink,
);
// The Result from the database mutation.
var queryResult = await client.mutate(
MutationOptions(
document: gql(Queries.createStatement()),
variables: {
"input": statement.toMap(),
},
),
);
// If the result has any exception.
if (queryResult.hasException) {
// Show some warning and return.
reloadEditScreen(null, "Upload fehlgeschlagen.");
return queryResult;
}
// Call the callback to reload the Editscreen.
reloadEditScreen(
Statement.fromMap(queryResult.data?["createStatement"]["statement"]),
null);
// And return the result.
return queryResult;
}