From 984226c5238f14a4b3e9f74db5f1101843a887a5 Mon Sep 17 00:00:00 2001
From: galderic <12606931+galderic@users.noreply.github.com>
Date: Tue, 3 Mar 2026 15:35:05 +0100
Subject: [PATCH 1/2] feat(T-004): add /ime server time endpoint
---
server.py | 7 +++++++
test_server.py | 19 +++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/server.py b/server.py
index 1a1856e..32b25d4 100644
--- a/server.py
+++ b/server.py
@@ -2,6 +2,7 @@
import json
import os
import uuid
+from datetime import datetime
from http.server import BaseHTTPRequestHandler, HTTPServer
@@ -10,6 +11,10 @@ def get_linux_upload_value():
return load_one_minute
+def get_linux_server_time():
+ return datetime.now().astimezone().isoformat()
+
+
def build_response(path):
if path == "/hello":
return 200, {"message": "hello"}, "application/json"
@@ -17,6 +22,8 @@ def build_response(path):
return 200, "ok", "text/plain; charset=utf-8"
if path == "/upload":
return 200, {"upload": get_linux_upload_value()}, "application/json"
+ if path == "/ime":
+ return 200, {"time": get_linux_server_time()}, "application/json"
return 404, None, None
diff --git a/test_server.py b/test_server.py
index 77807eb..0666ec3 100644
--- a/test_server.py
+++ b/test_server.py
@@ -50,6 +50,13 @@ def test_upload_endpoint(self, _):
self.assertEqual(body, {"upload": 1.23})
self.assertEqual(content_type, "application/json")
+ @patch("server.get_linux_server_time", return_value="2026-03-03T15:45:00+00:00")
+ def test_time_endpoint(self, _):
+ status, body, content_type = build_response("/ime")
+ self.assertEqual(status, 200)
+ self.assertEqual(body, {"time": "2026-03-03T15:45:00+00:00"})
+ self.assertEqual(content_type, "application/json")
+
def test_missing_endpoint(self):
status, body, content_type = build_response("/missing")
self.assertEqual(status, 404)
@@ -92,6 +99,18 @@ def test_upload_endpoint_returns_upload_value_and_request_id_header(self, _, __)
self.assertEqual(handler.wfile.buffer, b'{"upload": 4.56}')
self.assertTrue(handler.ended)
+ @patch("server.get_linux_server_time", return_value="2026-03-03T15:45:00+00:00")
+ @patch("server.generate_request_id", return_value="req-time")
+ def test_time_endpoint_returns_server_time_and_request_id_header(self, _, __):
+ handler = _FakeHandler("/ime")
+
+ Handler.do_GET(handler)
+
+ self.assertEqual(handler.status, 200)
+ self.assertIn(("X-Request-Id", "req-time"), handler.headers)
+ self.assertEqual(handler.wfile.buffer, b'{"time": "2026-03-03T15:45:00+00:00"}')
+ self.assertTrue(handler.ended)
+
if __name__ == "__main__":
unittest.main()
From 82bba986eef33bddc5f9be05c7b12533f1d7a337 Mon Sep 17 00:00:00 2001
From: galderic <12606931+galderic@users.noreply.github.com>
Date: Tue, 3 Mar 2026 16:06:10 +0100
Subject: [PATCH 2/2] T-004: Add server time endpoint
---
.idea/codeStyles/codeStyleConfig.xml | 5 +++++
.idea/go.imports.xml | 11 +++++++++++
.idea/vcs.xml | 6 ++++++
3 files changed, 22 insertions(+)
create mode 100644 .idea/codeStyles/codeStyleConfig.xml
create mode 100644 .idea/go.imports.xml
create mode 100644 .idea/vcs.xml
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..a55e7a1
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/go.imports.xml b/.idea/go.imports.xml
new file mode 100644
index 0000000..d7202f0
--- /dev/null
+++ b/.idea/go.imports.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file