parseRequest method
Implementation
Future<List<String>> parseRequest(
{required Map<String, dynamic> request}) async {
final schemaFile = await rootBundle
.loadString('packages/lb_bitstream/assets/schema/json_schema.json');
final jsonSchema = json.decode(schemaFile);
final List<dynamic> functions = request['function'];
final List<String> graphiteQueries = [];
for (final function in functions) {
final schema = await JsonSchema.create(jsonSchema);
final ValidationResults validationResult =
await schema.validate(function);
if (!validationResult.isValid) {
throw FormatException(
"Invalid request - Validate Result: ${validationResult.errors}");
}
final graphiteFunction = GraphiteFunction.fromJson(function);
final String graphiteQuery = graphiteFunction.toGraphiteQuery();
LogbotLogger().simple("FINAL GRAPHITE QUERY: $graphiteQuery");
graphiteQueries.add(graphiteQuery);
}
// final schema = await JsonSchema.create(jsonSchema);
// final ValidationResults validationResult =
// await schema.validate(request['function']);
// if (!validationResult.isValid) {
// LoggerService().simple("VALIDATION INITIAL RESULT: $validationResult");
// throw FormatException("Invalid request");
// }
// LoggerService().simple("GRAPHITE FUNCTION: $graphiteFunction");
// final String graphiteQuery = graphiteFunction.toGraphiteQuery();
// LoggerService().simple("GRAPHITE QUERY: $graphiteQuery");
return graphiteQueries;
}