aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/http_messages.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/hydrilla/proxy/http_messages.py')
-rw-r--r--src/hydrilla/proxy/http_messages.py24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/hydrilla/proxy/http_messages.py b/src/hydrilla/proxy/http_messages.py
index 78baf81..dbf2c63 100644
--- a/src/hydrilla/proxy/http_messages.py
+++ b/src/hydrilla/proxy/http_messages.py
@@ -74,15 +74,19 @@ class ProducedRequest:
body: bytes
@dc.dataclass(frozen=True)
-class RequestInfo:
- """...."""
+class BodylessRequestInfo:
url: url_patterns.ParsedUrl
method: str
headers: IHeaders
- body: bytes
+
+ def with_body(self, body: bytes) -> 'RequestInfo':
+ return RequestInfo(self.url, self.method, self.headers, body)
+
+@dc.dataclass(frozen=True)
+class RequestInfo(BodylessRequestInfo):
+ body: bytes
def make_produced_request(self) -> ProducedRequest:
- """...."""
return ProducedRequest(
url = self.url.orig_url,
method = self.method,
@@ -98,16 +102,20 @@ class ProducedResponse:
body: bytes
@dc.dataclass(frozen=True)
-class ResponseInfo:
+class BodylessResponseInfo:
"""...."""
url: url_patterns.ParsedUrl
- orig_url: url_patterns.ParsedUrl
status_code: int
headers: IHeaders
- body: bytes
+
+ def with_body(self, body: bytes) -> 'ResponseInfo':
+ return ResponseInfo(self.url, self.status_code, self.headers, body)
+
+@dc.dataclass(frozen=True)
+class ResponseInfo(BodylessResponseInfo):
+ body: bytes
def make_produced_response(self) -> ProducedResponse:
- """...."""
return ProducedResponse(
status_code = self.status_code,
headers = encode_headers_items(self.headers.items()),