Commit a512769d by Owo Sugiana

class BaseError ditambah action

1 parent 8d28ba6e
0.2 2023-03-15
--------------
- class BaseError ditambah action
0.1 2023-03-07
--------------
- Kali pertama
......@@ -9,6 +9,7 @@ def exception_message():
class BaseError(Exception):
def __init__(self, code, message):
def __init__(self, code, message, action=''):
self.code = code
self.message = message
self.action = action
......@@ -10,12 +10,12 @@ ERR_ACTION = 76
class ErrKey(BaseError):
def __init__(self, message):
super().__init__(ERR_KEY, message)
super().__init__(ERR_KEY, message, 'login')
class ErrAction(BaseError):
def __init__(self, message):
super().__init__(ERR_ACTION, message)
def __init__(self, message, action=''):
super().__init__(ERR_ACTION, message, action)
class Handler:
......@@ -45,7 +45,7 @@ class Handler:
if action == 'echo':
return dict(action='echo', code=0, message='OK')
msg = f'ERROR action {action} tidak dipahami'
raise ErrAction(msg)
raise ErrAction(msg, action)
def get_data(self):
return dict()
......
......@@ -152,10 +152,10 @@ def main(argv=sys.argv[1:]):
ws_data[cid] = []
mem_clients[cid] = mem_id
except BaseError as e:
dc = dict(code=e.code, message=e.message)
dc = dict(code=e.code, message=e.message, action=e.action)
except Exception:
log_unknown_error()
dc = dict(code=91, message='Login gagal')
dc = dict(code=91, message='Login gagal', action='login')
log_info(f'Encode JSON {dc}')
await kirim_pesan(dc)
return cid
......@@ -206,6 +206,12 @@ def main(argv=sys.argv[1:]):
del ws_data[client_id]
break
try:
async with asyncio.timeout(5):
await receive()
except asyncio.TimeoutError:
pass
log_info('Koneksi berakhir')
try:
handler.close()
except Exception:
log_unknown_error()
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!