parseRequest method

Future<List<String>> parseRequest({
  1. required Map<String, dynamic> request,
})

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();

    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;
}