from asgiref.sync import async_to_sync
from channels.layers import get_channel_layer

from .utils import DjangoJsonWebsocketConsumer, PermConsumerMixin


class KPsul(PermConsumerMixin, DjangoJsonWebsocketConsumer):
    groups = ["kfet.kpsul"]
    perms_connect = ["kfet.is_team"]

    async def kpsul(self, event):
        await self.send_json(event)

    @classmethod
    @async_to_sync
    async def group_send(cls, group, data):
        channel_layer = get_channel_layer()
        await channel_layer.group_send(group, data)
