From ebf98275cf382d5694221f5ae45c85f0fb8bba16 Mon Sep 17 00:00:00 2001 From: Sandra Date: Mon, 31 Jan 2022 01:50:18 +0100 Subject: [PATCH] Add report parsing time to the parse result --- .../java/eu/okaeri/timings/api/v1/ParseController.java | 10 +++++++++- frontend/src/App.vue | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/api/src/main/java/eu/okaeri/timings/api/v1/ParseController.java b/backend/api/src/main/java/eu/okaeri/timings/api/v1/ParseController.java index 455777d..1e77ac7 100644 --- a/backend/api/src/main/java/eu/okaeri/timings/api/v1/ParseController.java +++ b/backend/api/src/main/java/eu/okaeri/timings/api/v1/ParseController.java @@ -11,6 +11,8 @@ import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; import java.nio.charset.StandardCharsets; +import java.time.Duration; +import java.time.Instant; import java.util.*; import java.util.stream.Collectors; @@ -26,6 +28,7 @@ public class ParseController { return ResponseEntity.badRequest().body(Map.of("error", "Expected text/csv, got: " + file.getContentType())); } + Instant start = Instant.now(); String content = new String(file.getBytes(), StandardCharsets.UTF_8); String[] lines = content.split("\r?\n"); @@ -81,10 +84,15 @@ public class ParseController { throw new RuntimeException("Invalid report"); } + Map report = Map.of( + "took", (Duration.between(start, Instant.now())) + ); + return ResponseEntity.ok(Map.of( "meta", metadata, "header", header, - "data", records + "data", records, + "report", report )); } } diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 9bfc1d5..3eb4b18 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -96,6 +96,7 @@ export default { this.report = await this.axios.post('/v1/parse', formData, {headers: {'Content-Type': 'multipart/form-data'}}) .then((response) => response.data) .catch((error) => console.log(error)); + console.log(`Report parsing took ${this.report.took}`); } }, setup: function () {