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)
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)