about summary refs log tree commit diff
path: root/Utilities/LibMatrix.DebugDataValidationApi/Controllers
diff options
context:
space:
mode:
Diffstat (limited to 'Utilities/LibMatrix.DebugDataValidationApi/Controllers')
-rw-r--r--Utilities/LibMatrix.DebugDataValidationApi/Controllers/ValidationController.cs26
1 files changed, 26 insertions, 0 deletions
diff --git a/Utilities/LibMatrix.DebugDataValidationApi/Controllers/ValidationController.cs b/Utilities/LibMatrix.DebugDataValidationApi/Controllers/ValidationController.cs
new file mode 100644
index 0000000..4dbee54
--- /dev/null
+++ b/Utilities/LibMatrix.DebugDataValidationApi/Controllers/ValidationController.cs
@@ -0,0 +1,26 @@
+using System.Text.Json;
+using LibMatrix.Extensions;
+using Microsoft.AspNetCore.Mvc;
+
+namespace LibMatrix.DebugDataValidationApi.Controllers;
+
+[ApiController]
+[Route("/")]
+public class ValidationController : ControllerBase {
+    private readonly ILogger<ValidationController> _logger;
+
+    public ValidationController(ILogger<ValidationController> logger) {
+        _logger = logger;
+    }
+
+    [HttpPost("/validate/{type}")]
+    public Task<bool> Get([FromRoute] string type, [FromBody] JsonElement content) {
+        var t = Type.GetType(type);
+        if (t is null) {
+            Console.WriteLine($"Type `{type}` does not exist!");
+            throw new ArgumentException($"Unknown type {type}!");
+        }
+        Console.WriteLine($"Validating {type}...");
+        return Task.FromResult(content.FindExtraJsonElementFields(t, "$"));
+    }
+}