Initial Proxy coed

This commit is contained in:
Thastertyn 2025-02-04 22:44:32 +01:00
parent a70d052cbf
commit 587756a51b
4 changed files with 53 additions and 3 deletions

View File

@ -1,7 +1,21 @@
from core.request import Request
from core import Request
from bank_protocol.exceptions import InvalidRequest
def account_deposit(request: Request):
pass
split_body = request.body.split("/")
split_ip = split_body[1].split(" ")
account = split_body[0]
ip = split_ip[0]
amount = split_ip[1]
if not account.isdigit():
raise InvalidRequest("Account must be a number")
account_parsed = int(account)
if account_parsed < 10_000 or account_parsed > 99_999:
raise InvalidRequest("Account number out of range")
__all__ = ["account_deposit"]

View File

@ -2,6 +2,12 @@
from core.exceptions import BankNodeError
class ProxyError(BankNodeError):
def __init__(self, message):
super().__init__(message)
self.message = message
class InvalidRequest(BankNodeError):
def __init__(self, message):
super().__init__(message)

View File

@ -0,0 +1,23 @@
import socket
from typing import Tuple
from core import Request, Response
from bank_protocol.exceptions import ProxyError
class BankProxy():
def __init__(self, request: Request, address: Tuple):
self.request = request
self.address = address
def proxy_request(self) -> Response:
try:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
client_socket.connect(self.address)
client_socket.sendall(self.request.as_request())
response = client_socket.recv(1024)
return response
except socket.error as e:
raise ProxyError("Proxy error") from e

View File

@ -21,8 +21,15 @@ class Request():
else:
raise InvalidRequest("Invalid request")
def as_request(self):
"""Returns a valid request string with CRLF ending"""
return str(self) + "\r\n"
def __str__(self):
return f"{self.command_code} {self.body}"
if self.body:
return f"{self.command_code} {self.body}"
else:
return self.command_code
__all__ = ["Request"]