about summary refs log tree commit diff
path: root/src/APIv1.py
diff options
context:
space:
mode:
authorQubik <89706156+UltraQbik@users.noreply.github.com>2024-08-23 20:27:27 +0200
committerGitHub <noreply@github.com>2024-08-23 20:27:27 +0200
commit9aca00d7265b9d05f908b4201a03b7b0808c5ca1 (patch)
tree47346be37cc68fc18aa8e5603eef58a48d9b2e04 /src/APIv1.py
parenta96b13f6816ca0657d9f65097b97d0e87e1a0366 (diff)
parentfd8c46cac1c914851613cac425d2afe68d360d9d (diff)
downloadhttpy-9aca00d7265b9d05f908b4201a03b7b0808c5ca1.tar.gz
httpy-9aca00d7265b9d05f908b4201a03b7b0808c5ca1.zip
Merge pull request #2 from UltraQbik/threading-rewrite
Threading rewrite
Diffstat (limited to 'src/APIv1.py')
-rw-r--r--src/APIv1.py22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/APIv1.py b/src/APIv1.py
index db8c4f3..f163c5b 100644
--- a/src/APIv1.py
+++ b/src/APIv1.py
@@ -1,6 +1,6 @@
 import random
-from ssl import SSLSocket
-from src.request import Request
+from src.request import *
+from src.status_code import *
 
 
 API_FILE_RANDOM_MIN_SIZE_LIMIT = 1
@@ -59,29 +59,27 @@ def decode_size(size: str) -> int:
     return size
 
 
-def respond(client: SSLSocket, request: Request) -> tuple[int, bytes, dict]:
+def api_call(client: SSLSocket, request: Request) -> Response:
     """
     Respond to clients API request
     """
 
     # decode API request
-    split_path = request.path.split("/")
-    api_level1 = split_path[2]
-    api_request = split_path[3]
+    split_path = request.path.split("/", maxsplit=16)[1:]
 
     # do something with it (oh god)
-    if api_level1 == "file":
-        if api_request == "random":
+    if len(split_path) > 1 and split_path[1] == "file":
+        if len(split_path) > 2 and split_path[2] == "random":
             # get size
             size_str = request.path_args.get("size", "16mib")
             size = decode_size(size_str)
 
             # check size
             if size < API_FILE_RANDOM_MIN_SIZE_LIMIT or size > API_FILE_RANDOM_MAX_SIZE_LIMIT:
-                return 400, b'', {}
+                return Response(b'', STATUS_CODE_BAD_REQUEST)
 
-            return 200, random_data_gen(size), {}
+            return Response(random_data_gen(size), STATUS_CODE_OK, compress=False)
         else:
-            return 400, b'', {}
+            return Response(b'', STATUS_CODE_BAD_REQUEST)
     else:
-        return 400, b'', {}
+        return Response(b'', STATUS_CODE_BAD_REQUEST)