summaryrefslogtreecommitdiffstats
path: root/ttun_server/types.py
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tomvanderlee@users.noreply.github.com>2024-08-30 15:54:40 +0200
committerGravatar GitHub <noreply@github.com>2024-08-30 15:54:40 +0200
commit0f7c975fe61dab4efb11b49ddc87331c30c26942 (patch)
tree68f4b351b337b9a2269ddb2cb512016c93e7cbbc /ttun_server/types.py
parent53a8f300859a50d9f99f1821c35bca999fced6d8 (diff)
parenta72a0485ef8761b95c73cc420723247fafbb6f1c (diff)
downloadserver-main.tar.gz
server-main.tar.bz2
server-main.zip
Merge pull request #6 from tomvanderlee/feature/websocketsv2.1.0main
Added websocket support
Diffstat (limited to 'ttun_server/types.py')
-rw-r--r--ttun_server/types.py51
1 files changed, 45 insertions, 6 deletions
diff --git a/ttun_server/types.py b/ttun_server/types.py
index 8a4d929..8591e7d 100644
--- a/ttun_server/types.py
+++ b/ttun_server/types.py
@@ -3,7 +3,7 @@ from enum import Enum
3from typing import TypedDict, Optional 3from typing import TypedDict, Optional
4 4
5 5
6class MessageType(Enum): 6class HttpMessageType(Enum):
7 request = 'request' 7 request = 'request'
8 response = 'response' 8 response = 'response'
9 9
@@ -13,23 +13,62 @@ class Config(TypedDict):
13 client_version: str 13 client_version: str
14 14
15 15
16class RequestData(TypedDict): 16class HttpRequestData(TypedDict):
17 method: str 17 method: str
18 path: str 18 path: str
19 headers: list[tuple[str, str]] 19 headers: list[tuple[str, str]]
20 body: Optional[str] 20 body: Optional[str]
21 21
22 22
23class ResponseData(TypedDict): 23class HttpResponseData(TypedDict):
24 status: int 24 status: int
25 headers: list[tuple[str, str]] 25 headers: list[tuple[str, str]]
26 body: Optional[str] 26 body: Optional[str]
27 27
28 28
29class Message(TypedDict): 29class HttpMessage(TypedDict):
30 type: MessageType 30 type: HttpMessageType
31 identifier: str 31 identifier: str
32 payload: Config | RequestData | ResponseData 32 payload: Config | HttpRequestData | HttpResponseData
33
34
35class WebsocketMessageType(Enum):
36 connect = 'connect'
37 disconnect = 'disconnect'
38 message = 'message'
39 ack = 'ack'
40
41
42class WebsocketConnectData(TypedDict):
43 path: str
44 headers: list[tuple[str, str]]
45
46
47class WebsocketDisconnectData(TypedDict):
48 close_code: int
49
50
51class WebsocketMessageData(TypedDict):
52 body: Optional[str]
53
54
55class WebsocketMessage(TypedDict):
56 type: WebsocketMessageType
57 identifier: str
58 payload: WebsocketConnectData | WebsocketDisconnectData | WebsocketMessageData
59
60
61class MessageType(Enum):
62 request = 'request'
63 response = 'response'
64
65 ws_connect = 'connect'
66 ws_disconnect = 'disconnect'
67 ws_message = 'message'
68 ws_ack = 'ack'
69
70
71Message = HttpMessage | WebsocketMessage
33 72
34 73
35class MemoryConnection(TypedDict): 74class MemoryConnection(TypedDict):