コード例 #1
0
ファイル: views.py プロジェクト: aftabaig/py_castm
def get_notifications(user, type):
    notifications = Notification.unread_notifications(user, type)
    my_notifications = []
    for notification in notifications:
        plain_notification = notification.plain()
        my_notifications.append(plain_notification)
    return PlainNotificationSerializer(my_notifications, many=True)
コード例 #2
0
ファイル: views.py プロジェクト: aftabaig/py_castm
def action_taken(request, notification_id):
    """
    To respond to a notification.
    Allowed HTTP methods are:\n
        1. PUT to update\n
            Returns:\n
            [
                {
                    "status": 200,
                    "message": "OK"
                },
            ]
    Status:\n
        1. 200 on success
        2. 401 if un-authorized
    Notes:\n
        1. Require user's token to be sent in the header as:\n
            Authorization: Token [token]\n
    """
    user = request.user
    notification = Notification.objects.get(pk=notification_id)
    if notification.type == "MSG":
        related_notifications = Notification.unread_notifications(user, "MSG")
        for related_notification in related_notifications:
            related_notification.action_taken = True
            related_notification.seen = True
            related_notification.save()
    elif notification.type == "OMR":
        related_notifications = Notification.membership_requests_notifications(notification.source_id)
        for related_notification in related_notifications:
            related_notification.action_taken = True
            related_notification.seen = True
            related_notification.save()
    if notification.for_user == user:
        notification.action_taken = True
        notification.seen = True
        notification.save()
    return Response({
        "status": HTTP_200_OK,
        "message": "OK"
    }, status=HTTP_200_OK)