about summary refs log tree commit diff
path: root/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'main.py')
-rw-r--r--main.py41
1 files changed, 1 insertions, 40 deletions
diff --git a/main.py b/main.py
index f99fae8..7270ddc 100644
--- a/main.py
+++ b/main.py
@@ -10,6 +10,7 @@ import socket
 import asyncio
 import aiofiles
 import threading
+from src.request import Request
 
 
 # path mapping
@@ -45,46 +46,6 @@ def get_response_code(code: int) -> bytes:
             return get_response_code(400)
 
 
-class Request:
-    """
-    Just a request
-    """
-
-    def __init__(self):
-        self.type: str = ""
-        self.path: str = ""
-
-    @staticmethod
-    def create(raw_request: bytes):
-        """
-        Creates self class from raw request
-        :param raw_request: bytes
-        :return: self
-        """
-
-        # new request
-        request = Request()
-
-        # fix type and path
-        request.type = raw_request[:raw_request.find(b' ')].decode("ascii")
-        request.path = raw_request[len(request.type)+1:raw_request.find(b' ', len(request.type)+1)].decode("ascii")
-
-        # decode headers
-        for raw_header in raw_request.split(b'\r\n'):
-            if len(pair := raw_header.decode("ascii").split(":")) == 2:
-                key, val = pair
-                val = val.strip()
-
-                # set attribute to key value pair
-                setattr(request, key, val)
-
-        # return request
-        return request
-
-    def __str__(self):
-        return '\n'.join([f"{key}: {val}" for key, val in self.__dict__.items()])
-
-
 class HTTPServer:
     """
     The mighty HTTP server