initial commit backend
This commit is contained in:
67
chat/response.py
Normal file
67
chat/response.py
Normal file
@@ -0,0 +1,67 @@
|
||||
from abc import ABC
|
||||
from dataclasses import dataclass
|
||||
from events import Events
|
||||
|
||||
|
||||
@dataclass
|
||||
class Response(ABC):
|
||||
sender: str
|
||||
event: Events
|
||||
|
||||
def to_json(self) -> dict:
|
||||
d = self.__dict__
|
||||
d.pop('event')
|
||||
return d
|
||||
|
||||
|
||||
@dataclass
|
||||
class NewCharacter(Response):
|
||||
character: dict
|
||||
|
||||
|
||||
@dataclass
|
||||
class RemoveActor(Response):
|
||||
message: str
|
||||
name: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class PublicMessage(Response):
|
||||
message: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class PrivateMessage(Response):
|
||||
message: str
|
||||
recipient: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class DiceRoll(Response):
|
||||
message: str
|
||||
dice: list
|
||||
result: int
|
||||
|
||||
|
||||
def build_dice_roll(sender, message, dice, result):
|
||||
return DiceRoll(sender, Events.DICE_ROLL, message, dice, result)
|
||||
|
||||
|
||||
def build_new_character(sender, char_dict):
|
||||
return NewCharacter(sender, Events.NEW_CHARACTER, char_dict)
|
||||
|
||||
|
||||
def build_remove_actor(sender, message, name):
|
||||
return RemoveActor(sender, Events.REMOVE_ACTOR, message, name)
|
||||
|
||||
|
||||
def build_private_message(sender, message, recipient):
|
||||
return PrivateMessage(sender, Events.PRIVATE_CHAT, message, recipient)
|
||||
|
||||
|
||||
def build_public_message(sender, message):
|
||||
return PublicMessage(sender, Events.PUBLIC_CHAT, message)
|
||||
|
||||
|
||||
def build_system_message(user, message):
|
||||
return PrivateMessage('System', Events.SYSTEM_MESSAGE, message, user)
|
||||
Reference in New Issue
Block a user