renderTemplate method

Future<ServiceTemplateSpec> renderTemplate({
  1. required String template,
  2. required Map<String, String> values,
})

Corresponds to: POST /templates/render

Implementation

Future<ServiceTemplateSpec> renderTemplate({required String template, required Map<String, String> values}) async {
  final uri = Uri.parse('$baseUrl/templates/render');

  final response = await httpClient.post(uri, body: jsonEncode({"template": template, "values": values}));

  if (response.statusCode > 400) {
    throw MeshagentException(
      'Failed to render template. '
      'Status code: ${response.statusCode}, body: ${response.body}',
    );
  }

  if (response.statusCode == 400) {
    throw MeshagentException(jsonDecode(response.body)["error"]);
  }

  return ServiceTemplateSpec.fromJson(jsonDecode(response.body));
}