eventoL/eventoL

View on GitHub
eventol/eventol/routing.py

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
"""
   Routing Module with all Demultiplexers and channel_routing for djnago-channels
"""

from channels.generic.websockets import WebsocketDemultiplexer
from channels.routing import route_class

from manager.binding import (ActivityBinding, AttendeeAttendanceDateBinding,
                             EventBinding, EventUserAttendanceDateBinding,
                             InstallationBinding)


class APIDemultiplexer(WebsocketDemultiplexer):
    consumers = {
        'activities': ActivityBinding.consumer,
        'attendeeattendancedates': AttendeeAttendanceDateBinding.consumer,
        'events': EventBinding.consumer,
        'eventuserattendancedates': EventUserAttendanceDateBinding.consumer,
        'installations': InstallationBinding.consumer,
    }

    def connection_groups(self, **kwargs):
        return ['activities-updates', 'attendeeattendancedates-updates',
                'events-updates', 'eventuserattendancedates-updates',
                'installation-updates']


channel_routing = [
    route_class(APIDemultiplexer, path='^/updates/$')
]