haproxy-wi/app/modules/db/channel.py

83 lines
2.2 KiB
Python

from app.modules.db.db_model import Telegram, Slack, PD, Server, MM
from app.modules.db.common import out_error
from app.modules.roxywi.exception import RoxywiResourceNotFound
models = {
'telegram': Telegram,
'slack': Slack,
'pd': PD,
'mm': MM
}
def get_user_receiver_by_group(receiver: str, group: int):
model = models[receiver]
try:
return model.select().where(model.group_id == group).execute()
except Exception as e:
out_error(e)
def get_receiver_by_ip(receiver: str, ip: str):
model = models[receiver]
try:
return model.select().join(Server, on=(Server.group_id == model.group_id)).where(Server.ip == ip).execute()
except Exception as e:
out_error(e)
def get_receiver_by_id(receiver: str, channel_id: str):
model = models[receiver]
try:
return model.select().where(model.id == channel_id).execute()
except Exception as e:
out_error(e)
def select_receiver(receiver: str, channel_id: str):
model = models[receiver]
try:
return model.get(model.id == channel_id)
except model.DoesNotExist:
raise RoxywiResourceNotFound
except Exception as e:
out_error(e)
def insert_new_receiver(receiver: str, token: str, channel: str, group: str):
model = models[receiver]
try:
return model.insert(token=token, chanel_name=channel, group_id=group).execute()
except Exception as e:
out_error(e)
def update_receiver(receiver: str, token: str, channel: str, group: str, channel_id: int) -> None:
model = models[receiver]
try:
model.update(token=token, chanel_name=channel, group_id=group).where(model.id == channel_id).execute()
except model.DoesNotExist:
raise RoxywiResourceNotFound
except Exception as e:
out_error(e)
def delete_receiver(receiver: str, channel_id: int) -> None:
model = models[receiver]
try:
model.delete().where(model.id == channel_id).execute()
except model.DoesNotExist:
raise RoxywiResourceNotFound
except Exception as e:
out_error(e)
def get_receiver_with_group(receiver: str, channel_id: int, group_id: int):
try:
model = models[receiver]
return model.get((model.id == channel_id) & (model.group_id == group_id))
except model.DoesNotExist:
raise RoxywiResourceNotFound
except Exception as e:
out_error(e)