diff options
| author | UltraQbik <no1skill@yandex.ru> | 2024-08-21 00:57:47 +0300 |
|---|---|---|
| committer | UltraQbik <no1skill@yandex.ru> | 2024-08-21 00:57:47 +0300 |
| commit | a68496d2111c8971a77e52329ee3f22a9ddc4cea (patch) | |
| tree | 9dd0206b773d8cb0c262ddc73542c1c50c91d235 /main.py | |
| parent | d2ee7f153e4d21879e12fe25ec2128f8e6466afb (diff) | |
| download | httpy-a68496d2111c8971a77e52329ee3f22a9ddc4cea.tar.gz httpy-a68496d2111c8971a77e52329ee3f22a9ddc4cea.zip | |
Carry Request class to a separate .py file
Diffstat (limited to 'main.py')
| -rw-r--r-- | main.py | 41 |
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 |