def test_middleware_processing(self):
     route_handler.register(TestRouter)
     data = {'verb': 'say_hello', 'route': TestRouter.get_name()}
     with self.assertRaises(AttributeError):
         self.connection.dummy
     self.connection.on_message(data)
     self.assertTrue(self.connection.dummy)
 def setUp(self):
     route_handler.register(NotificationRouter)
     backends.backends = [('realtime', RealtimeNotification)]
     user_manager.clear()
     self.user_a = User.objects.create(first_name='Veronica', username='******')
     self.user_b = User.objects.create(first_name='Jonas', username='******')
     self.user_c = User.objects.create(first_name='Benedicte', username='******')
     user_manager.add_user(self.user_a.pk)
     user_manager.add_user(self.user_b.pk)
     user_manager.add_user(self.user_c.pk)
 def test_validate_field_from_router(self):
     """
     Ensure that both the text and number error message
     is raised upon validation
     """
     data = {'text': 'foo', 'number': 8}
     route_handler.register(Router)
     self.connection.call_verb(Router.route_name, 'create', **data)
     self.assertEqual(self.connection.last_message['context']['state'], ERROR)
     self.assertIn('text', self.connection.last_message['data'])
     self.assertIn('number', self.connection.last_message['data'])
 def setUp(self):
     route_handler.register(NotificationRouter)
     backends.backends = [('realtime', RealtimeNotification)]
     user_manager.clear()
     self.user_a = User.objects.create(first_name='Veronica',
                                       username='******')
     self.user_b = User.objects.create(first_name='Jonas', username='******')
     self.user_c = User.objects.create(first_name='Benedicte',
                                       username='******')
     user_manager.add_user(self.user_a.pk)
     user_manager.add_user(self.user_b.pk)
     user_manager.add_user(self.user_c.pk)
Exemple #5
0
 def test_register_model_router_with_missing_get_object(self):
     with self.assertRaises(Exception):
         route_handler.register(ModelRouterGetObject)
Exemple #6
0
from dataset_manager.enums import ComputingStateType
from testing import tasks


class TestServerRouter(BaseRouter):
    route_name = 'test_server'

    valid_verbs = BaseRouter.valid_verbs + ['test', 'test_celery']

    def test(self):
        try:
            time.sleep(2)
            self.send({"state": ComputingStateType.SUCCESS})
        except:
            self.send({"state": ComputingStateType.FAILED})

    def test_celery(self):
        try:
            task = tasks.test.delay()
            time.sleep(2)
            state = task.state

            if state == "SUCCESS":
                self.send({"state": ComputingStateType.SUCCESS})
            else:
                self.send({"state": ComputingStateType.FAILED})
        except:
            self.send({"state": ComputingStateType.FAILED})

route_handler.register(TestServerRouter)
Exemple #7
0
 def test_register_router(self):
     route_handler.register(Router)
     self.assertIsNotNone(route_handler.get_route_handler(
         Router.get_name()))
 def test_on_message_invalid_verb(self):
     route_handler.register(TestRouter)
     data = {'verb': 'invalid_verb', 'route': TestRouter.get_name()}
     with self.assertRaises(UnexpectedVerbException):
         self.connection.on_message(data)
     self.assertTrue(self.connection.is_closed)
class ChatRouter(ModelRouter):
    route_name = 'chat'
    serializer_class = ChatSerializer
    include_related = [ChatMessageSerializer, ChatMessageSerializer]
    model = Chat

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


class ChatMessageRouter(ModelRouter):
    route_name = 'chat-message'
    serializer_class = ChatMessageSerializer
    model = ChatMessage

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


route_handler.register(MailRouter)
route_handler.register(MailReplyRouter)
route_handler.register(NotificationRouter)
route_handler.register(ChatRouter)
route_handler.register(ChatMessageRouter)
Exemple #10
0
        return self.model.objects.get(pk = kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


class TicTacToeMoveRouter(ModelPubRouter):
    route_name = 'tic-tac-toe-move'
    model = TicTacToeMove
    serializer_class = model.serializer_class

    def get_initial(self, verb, **kwargs):
        if verb == 'create':
            try:
                tic_tac_toe = TicTacToe.objects.get(id = kwargs.get('tic_tac_toe_id'))
                return {'tic_tac_toe': tic_tac_toe}
            except TicTacToe.DoesNotExist:
                pass
        return dict()


    def get_object(self, **kwargs):
        return self.model.objects.get(pk = kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.filter(tic_tac_toe = kwargs['tic_tac_toe_id'])


route_handler.register(TicTacToeRouter)
route_handler.register(TicTacToeMoveRouter)
Exemple #11
0
            pass
        else:
            auth.is_read = True
        auth.save()

        comment = Comment()
        comment.room = get_object_or_404(Room, pk=kwargs["room"])
        comment.authid = self.connection.user.id
        comment.text = kwargs['text']

        comment.save()


class RoomRegistRouter(ModelRouter):
    route_name = 'regist-route'
    serializer_class = RoomResistSerializer
    model = RoomResist

    def get_object(self, **kwargs):
        obj, created = self.model.objects.get_or_create(user=self.connection.user.id, room=kwargs['room_id'])
        return obj

    def get_query_set(self, **kwargs):
        # print(self.model.objects.filter(room=kwargs['room_id'])[1].text)
        return self.model.objects.filter(user=kwargs['user_id'])
        # return self.model.objects.all()

route_handler.register(UserRouter)
route_handler.register(RoomRouter)
route_handler.register(CommentRouter)
route_handler.register(RoomRegistRouter)
Exemple #12
0
from swampdragon import route_handler
from swampdragon.pubsub_providers.data_publisher import publish_data
from swampdragon.route_handler import BaseRouter
from tornado.ioloop import PeriodicCallback

pcb = None

class CallStatusRouter(BaseRouter):
    route_name = 'calls'

    def get_subscription_channels(self, **kwargs):
        broadcast_call_status()
        return ['call_status']


def broadcast_call_status():
    print "IN HEREtoo"

    global pcb
    if pcb is None:
        pcb = PeriodicCallback(broadcast_call_status, 500)
        pcb.start()

    print "HELLO"
    publish_data('call_status', {
        'status': random.randint(0, 1000)
    })


route_handler.register(CallStatusRouter)
Exemple #13
0
        event = Event.objects.filter(identifier = kwargs['identifier'])
        return self.model.objects.filter(event = event)
        
    def created(self, obj, **kwargs):
        data = self.serializer_class(instance=obj).serialize()
        chatData = dict({'data': data})
        base_channel = self.serializer_class.get_base_channel()
        identifier = kwargs['identifier']
        channel = base_channel + "identifier:" + identifier
        self.publish([channel], chatData)        
        super().created(obj, **kwargs)
            
class MarkerListRouter(BaseRouter):
    route_name = 'marker-list'
    valid_verbs = ['subscribe', 'get_markers']

    def get_markers(self, **kwargs):
        identifier = kwargs['identifier']
        local_channel = kwargs['local_channel']
        lat = kwargs['lat']
        lng = kwargs['lng']
        channel = "marker|identifier:" + identifier
        self.publish([channel], kwargs)
        
    def get_subscription_channels(self, **kwargs):
        identifier = kwargs['identifier']
        return ["marker|identifier:" + identifier]

route_handler.register(ChatListRouter)
route_handler.register(MarkerListRouter)
Exemple #14
0
import logging

from swampdragon import route_handler
from swampdragon.route_handler import BaseRouter

logger = logging.getLogger(__name__)


class ActivityFeedRouter(BaseRouter):
    route_name = 'activityfeed'

    def get_subscription_channels(self, **kwargs):
        channels = ('feed', )

        pk = kwargs.pop('pk')

        if pk:
            channels = ['post-{pk}'.format(pk=pk)]
            channels.append('feed')

        return channels

    def subscribe(self, **kwargs):
        logger.info(kwargs)
        super(ActivityFeedRouter, self).subscribe(**kwargs)


route_handler.register(ActivityFeedRouter)
Exemple #15
0
from swampdragon import route_handler
from swampdragon.route_handler import ModelRouter
from turnover.models import Events
from turnover.serializers import EventsSerializer


class EventsRouter(ModelRouter):
    route_name = "events-list"
    serializer_class = EventsSerializer
    model = Events

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs["id"])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


route_handler.register(EventsRouter)
Exemple #16
0
from swampdragon import route_handler
from swampdragon.route_handler import BaseRouter
from swampdragon.pubsub_providers.data_publisher import publish_data
from django.conf import settings
from google.models import Search

cache = settings.CACHE


class GeoRouter(BaseRouter):
    route_name = 'geo_task'
    valid_verbs = ['subscribe']

    def get_subscription_channels(self, **kwargs):
        channel = 'project_%s_geo' % kwargs.get('project')
        return [channel]


class SearchRouter(BaseRouter):
    route_name = 'search_task'
    valid_verbs = ['subscribe']

    def get_subscription_channels(self, **kwargs):
        channel = 'project_%s_search' % kwargs.get('project')
        print channel
        return [channel]


route_handler.register(GeoRouter)
route_handler.register(SearchRouter)
Exemple #17
0
from swampdragon.route_handler import register
from swampdragon.route_handler import ModelRouter
from models import Message
from serializers import NotificationSerializer


class NotificationRouter(ModelRouter):
    model = Message
    serializer_class = NotificationSerializer
    route_name = 'notifications'
    valid_verbs = ['subscribe']


register(NotificationRouter)
class MessageRouter(ModelRouter):
    route_name = 'message'
    serializer_class = MessageSerializer
    model = Message
    valid_verbs = ['chat', 'subscribe', 'get_list']

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.filter(
            Q(sender=kwargs['user_id']) | Q(recipient=kwargs['user_id']))


route_handler.register(MyUserRouter)
route_handler.register(MessageRouter)


class NotificationRouter(ModelRouter):
    valid_verbs = ['subscribe']
    route_name = 'notification'
    model = Message
    serializer_class = MessageSerializer

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['pk'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()
    route_name = '_sdfileupload'


class WithFileRouter(BaseModelRouter):
    model = WithFile
    serializer_class = WithFileSerializer
    route_name = 'withfile-route'

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


class MultiFileRouter(BaseModelRouter):
    model = MultiFileModel
    serializer_class = MultiFileSerializer
    route_name = 'multifile-route'

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


route_handler.register(WithFileRouter)
route_handler.register(MultiFileRouter)
route_handler.register(FileUpload)
Exemple #20
0
                'message': m.text
            })


class MessageRouter(ModelRouter):
    route_name = 'message'
    serializer_class = MessageSerializer
    model = Message

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.filter(chat__id=kwargs['chat_id'])


class NotifyRouter(BaseRouter):
    valid_verbs = ['subscribe', 'notify_everyone_but_me']
    route_name = 'notifier'

    def notify_everyone_but_me(self, name):
        users = CustomUser.objects.all()
        # users = CustomUser.objects.exclude(pk=self.connection.user.pk)
        foo = Notification.objects.create(name=name)
        notify_users(users, subject=foo, notification_type='foo')


route_handler.register(NotifyRouter)
route_handler.register(ChatRouter)
route_handler.register(MessageRouter)
Exemple #21
0
		return self.model.objects.get(initiator = kwargs['initiator'],problem = kwargs['problem'])

	def get_query_set(self, **kwargs):
		return self.model.objects.all()


class MultiMoveRouter(ModelRouter):
	route_name = 'MultiMove'
	serializer_class = MultiMoveSerializer
	model = MultiMove
	
	def get_object(self, **kwargs):
		return self.model.objects.get(solution= kwargs['solution'], piece_key = kwargs['piece_key'])

	def get_query_set(self, **kwargs):
		return self.model.objects.filter(solution= kwargs['solution'])
		
class ChatRouter(ModelRouter):
	route_name = 'Chat'
	serializer_class = ChatSerializer
	model = Chat
	def get_object(self, **kwargs):
		return self.model.objects.get(solution= kwargs['solution'], username = kwargs['username'], initiator = kwargs['initiator'])

	def get_query_set(self, **kwargs):
		return self.model.objects.filter(solution__problem__name = kwargs['problem_name'])

route_handler.register(MultiSolRouter)
route_handler.register(MultiMoveRouter)
route_handler.register(ChatRouter)
Exemple #22
0
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


class TicTacToeMoveRouter(ModelPubRouter):
    route_name = 'tic-tac-toe-move'
    model = TicTacToeMove
    serializer_class = model.serializer_class

    def get_initial(self, verb, **kwargs):
        if verb == 'create':
            try:
                tic_tac_toe = TicTacToe.objects.get(
                    id=kwargs.get('tic_tac_toe_id'))
                return {'tic_tac_toe': tic_tac_toe}
            except TicTacToe.DoesNotExist:
                pass
        return dict()

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.filter(tic_tac_toe=kwargs['tic_tac_toe_id'])


route_handler.register(TicTacToeRouter)
route_handler.register(TicTacToeMoveRouter)
Exemple #23
0
from swampdragon import route_handler
from swampdragon.route_handler import ModelPubRouter

from .models import Notification
from .serializers import NotificationSerializer


class NotificationRouter(ModelPubRouter):
    valid_verbs = ['subscribe']
    route_name = 'notifications'
    model = Notification
    serializer_class = NotificationSerializer


route_handler.register(NotificationRouter)
from swampdragon import route_handler
from swampdragon.route_handler import ModelRouter

from .models import Player
from .serializers import PlayerSerializer


class PlayerRouter(ModelRouter):
    route_name = 'player'
    serializer_class = PlayerSerializer
    model = Player

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()

route_handler.register(PlayerRouter)
Exemple #25
0
    model = UserMessage
    route_name = 'admin-message'
    permission_classes = [LoginRequired()]

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['pk'])

    def get_query_set(self, **kwargs):
        return self.model.all()

    def create(self, **kwargs):
        initial = self.get_initial('create', **kwargs)
        self.serializer = self.serializer_class(data=kwargs, initial=initial)
        pk = self.serializer.data['user']
        user = get_user_model().objects.get(pk=pk)
        msg = UserMessage.objects.create(
            text=self.serializer.data['text'],
            user=user,
            direction='to'
        )
        publish_data('user-message-%s' % user.pk, {
            'text': msg.text,
            'created_at': str(msg.created_at),
            'direction': 'from'
        })

        self.send('done')

route_handler.register(UserMessageRouter)
route_handler.register(AdminMessageRouter)
 def setUp(self):
     route_handler.register(PersonRouter)
Exemple #27
0
from swampdragon import route_handler
from swampdragon.route_handler import ModelRouter
from localground.apps.site.api.realtime_serializers import PhotoRTSerializer
from localground.apps.site.models import Photo


class PhotoRouter(ModelRouter):
    route_name = 'photo'
    serializer_class = PhotoRTSerializer
    model = Photo

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


route_handler.register(PhotoRouter)
 def test_on_message(self):
     route_handler.register(TestRouter)
     data = {'verb': 'say_hello', 'route': TestRouter.get_name()}
     self.connection.on_message(data)
     self.assertTrue(self.connection.hello_said)
Exemple #29
0
from datetime import datetime

from swampdragon import route_handler
from swampdragon.route_handler import BaseRouter


class FooRouter(BaseRouter):
    route_name = 'foo'
    valid_verbs = ['get_date', 'get_error']

    def get_date(self, **kwargs):
        self.send({'current_date': str(datetime.now()), "kwargs": kwargs})

    def get_error(self, **kwargs):
        self.send_error({'name': 'the name is required'})


route_handler.register(FooRouter)
Exemple #30
0
    route_name = 'mensaje-router'
    serializer_class = MensajeSerializer
    model = Mensaje

    def get_object(self, **kwargs):
        a = self.model.objects.filter(
            fk_receptor__username=kwargs['username'],
            leido=False).order_by('fecha_de_envio').last()
        print a
        return a

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


route_handler.register(MensajeRouter)

# Class para notificacion


class NotificacionRouter(ModelRouter):
    route_name = 'notificacion-router'
    serializer_class = NotificacionSerializer
    model = Notificacion

    def get_object(self, **kwargs):
        a = self.model.objects.filter(
            destinatario_notificacion__username=kwargs['username'],
            estado_notificacion=False).order_by('fecha_creacion').last()
        print a
        return a
Exemple #31
0
    def get_subscription_contexts(self, **kwargs):
        return {'room__users__pk': self.connection.user.pk}


class ProfileRouter(ModelRouter):
    route_name = 'profiles'
    serializer_class = ProfileSerializer
    model = Profile

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


route_handler.register(MessageRouter)
route_handler.register(ProfileRouter)


# Modified OnlineUsersRouter
class ChatOnlineUsersRouter(OnlineUsersRouter):
    def subscribe(self, **kwargs):
        if not self.connection.user:
            return

        #super().subscribe(**kwargs)
        if self.connection.user:
            user_manager.add_user(self.connection.user.pk)
route_handler.registered_handlers['swampdragon-online'] = ChatOnlineUsersRouter
Exemple #32
0
from swampdragon import route_handler
from swampdragon.route_handler import BaseRouter


class ChatRouter(BaseRouter):
    route_name = 'chat-route'
    valid_verbs = ['chat', 'subscribe']

    def get_subscription_channels(self, **kwargs):
        return ['chatroom']

    def chat(self, *args, **kwargs):
        errors = {}
        if 'name' not in kwargs or len(kwargs['name']) is 0:
            errors['name'] = 'Specify a name'

        if 'message' not in kwargs or len(kwargs['message']) is 0:
            errors['message'] = 'Enter a chat message'

        if errors:
            self.send_error(errors)
        else:
            self.send({'status': 'ok'})
            self.publish(self.get_subscription_channels(), kwargs)


route_handler.register(ChatRouter)
Exemple #33
0
 def test_register_router_twice(self):
     route_handler.register(Router)
     route_handler.register(Router)
     self.assertEqual(len(route_handler.registered_handlers), 1)
Exemple #34
0
'''
'''
from django.contrib.auth.models import User

from swampdragon import route_handler
from swampdragon.route_handler import BaseRouter
from swampdragon_notifications.notifier import notify_users

from .models import *


class NotifyRouter(BaseRouter):
    valid_verbs = ['subscribe', 'notify_everyone', 'notify_everyone_but_me']
    route_name = 'notifier'

    def notify_everyone(self, name):
        users = User.objects.all()
        # foo = Foo.objects.create(name=name)
        notify_users(users, subject="Hello", notification_type='foo')

    def notify_everyone_but_me(self, name):
        users = User.objects.exclude(pk=self.connection.user.pk)
        # foo = Foo.objects.create(name=name)
        notify_users(users, subject="hello everyone", notification_type='foo')


route_handler.register(NotifyRouter)
Exemple #35
0
 def test_register_model_router_with_missing_get_query_set(self):
     with self.assertRaises(Exception):
         route_handler.register(ModelRouterGetQuerySet)
Exemple #36
0
            message = client.compose(kwargs['uuid'], message)

            self.send(message)

        except Exception, e:
            self.send_error({'message': 'Error composing message'})

    @login_required
    def get_conversation(self, **kwargs):
        user = self.connection.user
        token = UserProfile.objects.get(user=user).token

        if 'uuid' not in kwargs:
            self.send_error({'message': 'Missing room uuid'})
            return

        try:
            client = ChatClient(token)

            conv = client.get_conversation(kwargs['uuid'])

            conv['messages'].reverse()

            self.send(conv)

        except Exception, e:
            self.send_error({'message': 'Error retrieving conversation'})

route_handler.register(SessionRouter)
route_handler.register(ChatRouter)
Exemple #37
0
from swampdragon import route_handler
from swampdragon.route_handler import ModelRouter
from .serializers import CompanySerializer, StaffSerializer, DocumentSerializer, CompanyOwnerSerializer
from .models import Company


class CompanyRouter(ModelRouter):
    serializer_class = CompanySerializer
    model = Company
    route_name = 'company-route'
    include_related = [
        StaffSerializer, DocumentSerializer, CompanyOwnerSerializer
    ]

    def get_query_set(self, **kwargs):
        return self.model.objects.all()

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['pk'])


route_handler.register(CompanyRouter)
Exemple #38
0
class ChatRouter(ModelRouter):
    route_name = 'chat'
    serializer_class = ChatSerializer
    include_related = [ChatMessageSerializer, ChatMessageSerializer]
    model = Chat

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()

class ChatMessageRouter(ModelRouter):
    route_name = 'chat-message'
    serializer_class = ChatMessageSerializer
    model = ChatMessage

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()

route_handler.register(MailRouter)
route_handler.register(MailReplyRouter)
route_handler.register(NotificationRouter)
route_handler.register(ChatRouter)
route_handler.register(ChatMessageRouter)

Exemple #39
0
            for user in game.players:
                user.give_message(kwargs['msg'], sender, kwargs['target'],
                                  kwargs['time'])

        elif kwargs['target'] == "world":
            data_dict = {}

            data_dict['message'] = kwargs['msg']
            data_dict['sender'] = sender
            data_dict['target'] = kwargs['target']
            data_dict['time'] = kwargs['time']
            data_dict['type'] = "message"
            data_dict['channel'] = "sysmsg"
            channel = "sysmsg"

            publish_data(channel, data_dict)
        #else:  # search through game given this grouping (witch, werewolf, humans etc.)

    def vote(self, **kwargs):
        myGame = Game(session_data['g_id'])
        myGame.event_queue[0].add_vote(kwargs['p_id'])
        raise NotImplementedError

    def broadcast_games(self, *kwargs):
        return self.send(broadcast_games())


# register router
route_handler.register(LobbyRouter)
route_handler.register(GameRouter)
Exemple #40
0
from swampdragon.route_handler import ModelRouter
from servers.models import ServerList, ServerItem
from servers.serializers import ServerListSerializer, ServerItemSerializer


class ServerListRouter(ModelRouter):
    route_name = 'server-list'
    serializer_class = ServerListSerializer
    model = ServerList

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


class ServerItemRouter(ModelRouter):
    route_name = 'server-item'
    serializer_class = ServerItemSerializer
    model = ServerItem

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.filter(server_list__id=kwargs['list_id'])


route_handler.register(ServerListRouter)
route_handler.register(ServerItemRouter)
Exemple #41
0
from chat.models import ChatList, ChatItem
from chat.serializers import ChatListSerializer, ChatItemSerializer


class ChatListRouter(ModelRouter):
    route_name = 'chat-list'
    serializer_class = ChatListSerializer
    model = ChatList

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


class ChatItemRouter(ModelRouter):
    route_name = 'chat-item'
    serializer_class = ChatItemSerializer
    model = ChatItem

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.filter(chat_list__id=kwargs['list_id'])


route_handler.register(ChatListRouter)
route_handler.register(ChatItemRouter)
Exemple #42
0
from swampdragon.route_handler import BaseRouter

class AppointmentCreate(BaseRouter):
    route_name = 'AppointmentCreate'

    def get_subscription_channels(self, **kwargs):
        return ['createAppt']

class AppointmentUpdate(BaseRouter):
    route_name = 'AppointmentUpdate'

    def get_subscription_channels(self, **kwargs):
        return ['updateAppt']

class AppointmentDelete(BaseRouter):
    route_name = 'AppointmentDelete'

    def get_subscription_channels(self, **kwargs):
        return ['deleteAppt']

class PatientQueue(BaseRouter):
    route_name = 'PatientQueue'

    def get_subscription_channels(self, **kwargs):
        return ['queue']

route_handler.register(AppointmentCreate)
route_handler.register(AppointmentUpdate)
route_handler.register(AppointmentDelete)
route_handler.register(PatientQueue)
from swampdragon import route_handler
from swampdragon.permissions import login_required, LoginRequired
from swampdragon.route_handler import BaseRouter

class Chat(BaseRouter):
    route_name = 'chat'
    valid_verbs = BaseRouter.valid_verbs + ['say_hello', 'chat']
    #permission_classes = [LoginRequired()]

    def get_subscription_channels(self, **kwargs):
        return ['chatroom']

    @login_required
    def say_hello(self, **kwargs):
        data = {'name': kwargs['name'], 'message': 'hello'}
        self.publish(self.get_subscription_channels(), {'data': data})

    @login_required
    def chat(self, **kwargs):
        print(self.connection.get_user().is_authenticated())
        self.publish(self.get_subscription_channels(), {'data': kwargs})

route_handler.register(Chat)
        print("kwargs__GSC")
        print(kwargs)
        #print(kwargs[])
        print("vars(self.connection)__")
        print(vars(self.connection))
        contexto = dict()
        contexto['user__id'] = self.connection.user.pk
        print("contexto = ",contexto)
        return contexto

    def get_client_context(self, verb, **kwargs):
        print("get_client_context________________________")
        return {'id__': self.connection.user.pk}

    def send(self, data, channel_setup=None, **kwargs):
        print("metodo send______________________-")
        self.context['state'] = 'success'
        if 'verb' in self.context:
            client_context = self.get_client_context(self.context['verb'], **kwargs)
            self._update_client_context(client_context)
            print("Client_context : "+str(client_context))

        message = format_message(data=data, context=self.context, channel_setup=channel_setup)
        #print("se enviara el mensaje "+str(message))
        self.connection.send(message)
        print("se ENVIO mensaje "+str(message))


route_handler.register(NotificacionesRouter)

Exemple #45
0
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
"""
SwampDragon routers - Register channels available to the client-side (browser)
"""

# Imports #####################################################################

from swampdragon import route_handler
from swampdragon.route_handler import BaseRouter


# Routers #####################################################################

class NotificationRouter(BaseRouter): #pylint: disable=abstract-method,missing-docstring
    route_name = 'notifier'

    def get_subscription_channels(self, **kwargs):
        return ['notification', 'log']


# Routers registration ########################################################

route_handler.register(NotificationRouter)
 def test_on_message(self):
     route_handler.register(TestRouter)
     data = {"verb": "say_hello", "route": TestRouter.get_name()}
     self.connection.on_message(data)
     self.assertTrue(self.connection.hello_said)
from swampdragon.route_handler import ModelRouter
from todo.models import TodoList, TodoItem
from todo.serializers import TodoListSerializer, TodoItemSerializer


class TodoListRouter(ModelRouter):
    route_name = 'todo-list'
    serializer_class = TodoListSerializer
    model = TodoList

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()


class TodoItemRouter(ModelRouter):
    route_name = 'todo-item'
    serializer_class = TodoItemSerializer
    model = TodoItem

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.filter(todo_list__id=kwargs['list_id'])


route_handler.register(TodoListRouter)
route_handler.register(TodoItemRouter)
 def test_on_message_invalid_verb(self):
     route_handler.register(TestRouter)
     data = {"verb": "invalid_verb", "route": TestRouter.get_name()}
     with self.assertRaises(UnexpectedVerbException):
         self.connection.on_message(data)
     self.assertTrue(self.connection.is_closed)
    def get_subscription_channels(self, **kwargs):
        return ['sd_online_users']

    def get_online_count(self, **kwargs):
        self.send({'online': user_manager.user_count()})


class NotificationRouter(BaseRouter):
    route_name = 'swampdragon-notifications'
    valid_verbs = ['subscribe', 'unsubscribe', 'get_user_count', 'mark_read']

    def subscribe(self, **kwargs):
        """
        Only subscribe online users
        """
        if not self.connection.user:
            return
        super(NotificationRouter, self).subscribe(**kwargs)

    def get_subscription_channels(self, **kwargs):
        return ['sd_notification_user_{}'.format(self.connection.user.pk)]

    def mark_read(self, notification_id):
        Notification.objects.filter(user=self.connection.user,
                                    pk=notification_id).update(read=True)


route_handler.register(OnlineUsersRouter)
route_handler.register(NotificationRouter)
user_manager.clear()
Exemple #50
0
from swampdragon import route_handler
from swampdragon.route_handler import ModelRouter
from localground.apps.site.api.realtime_serializers import PhotoRTSerializer
from localground.apps.site.models import Photo


class PhotoRouter(ModelRouter):
    route_name = 'photo'
    serializer_class = PhotoRTSerializer
    model = Photo

    def get_object(self, **kwargs):
        return self.model.objects.get(pk=kwargs['id'])

    def get_query_set(self, **kwargs):
        return self.model.objects.all()

route_handler.register(PhotoRouter)
Exemple #51
0
        #theme.save()

    def update(self, **kwargs):
        comment = get_object_or_404(Comment, pk=kwargs['comment'])
        comment.good = comment.good + 1
        comment.save()


class ThemeRegisterRouter(ModelRouter):
    route_name = 'route-register'
    serializer_class = ThemeRegisterSerializer
    model = ThemeRegister

    def get_object(self, **kwargs):
        obj, created = self.model.objects.get_or_create(user=self.connection.user, theme=get_object_or_404(Theme, pk=kwargs['theme']))
        # print(obj.is_read, created)
        return obj

    def get_query_set(self, **kwargs):
        if kwargs['theme'] == "":
            obj = self.model.objects.filter(user=self.connection.user)
        else:
            obj = self.model.objects.filter(theme=get_object_or_404(Theme, pk=kwargs['theme']))
        return obj


route_handler.register(UserRouter)
route_handler.register(ThemeRouter)
route_handler.register(CommentRouter)
route_handler.register(ThemeRegisterRouter)
    def get_subscription_channels(self, **kwargs):
        return ['sd_online_users']

    def get_online_count(self, **kwargs):
        self.send({'online': user_manager.user_count()})


class NotificationRouter(BaseRouter):
    route_name = 'swampdragon-notifications'
    valid_verbs = ['subscribe', 'unsubscribe', 'get_user_count', 'mark_read']

    def subscribe(self, **kwargs):
        """
        Only subscribe online users
        """
        if not self.connection.user:
            return
        super(NotificationRouter, self).subscribe(**kwargs)

    def get_subscription_channels(self, **kwargs):
        return ['sd_notification_user_{}'.format(self.connection.user.pk)]

    def mark_read(self, notification_id):
        Notification.objects.filter(user=self.connection.user, pk=notification_id).update(read=True)


route_handler.register(OnlineUsersRouter)
route_handler.register(NotificationRouter)
user_manager.clear()