58 lines
1.3 KiB
Python
58 lines
1.3 KiB
Python
from enum import Enum
|
|
from typing import Union
|
|
|
|
from fluent import event
|
|
from fluent import sender
|
|
|
|
|
|
class Types(Enum):
|
|
Default = 'default'
|
|
EditData = 'edit_data'
|
|
CreateData = 'create_data'
|
|
DeleteData = 'delete_data'
|
|
Auth = 'authentication'
|
|
System = 'system'
|
|
Error = 'error'
|
|
Upgrade = 'upgrade'
|
|
Access = 'access'
|
|
|
|
|
|
def emit(payload: dict, tag: Union[Types, str] = Types.Default) -> None:
|
|
sender.setup('mongo', host='localhost', port=24224)
|
|
# try:
|
|
# owner = useUser().id
|
|
# payload['owner'] = str(owner)
|
|
# except BaseException:
|
|
# payload['owner'] = 'anonymous'
|
|
# finally:
|
|
val = tag.value if isinstance(tag, Types) else tag
|
|
event.Event(val, payload)
|
|
|
|
|
|
def update(dest: str, payload: dict) -> None:
|
|
emit({'dest': dest, **payload}, Types.EditData)
|
|
|
|
|
|
def insert(dest: str, payload: dict) -> None:
|
|
emit({'dest': dest, **payload}, Types.CreateData)
|
|
|
|
|
|
def delete(dest: str, payload: dict) -> None:
|
|
emit({'dest': dest, **payload}, Types.DeleteData)
|
|
|
|
|
|
def access(payload: dict) -> None:
|
|
emit(payload, Types.Access)
|
|
|
|
|
|
def auth(payload: dict) -> None:
|
|
emit(payload, Types.Auth)
|
|
|
|
|
|
def system(payload: dict) -> None:
|
|
emit(payload, Types.System)
|
|
|
|
|
|
def upgrade(payload: dict) -> None:
|
|
emit(payload, Types.Upgrade)
|