def send_message(request): """ Sends a message to a linked user. Allowed HTTP methods are:\n 1. POST to send\n Accepts following hash:\n . {\n "to": [user_id],\n "title": [message_title],\n "message": [the_message]\n }\n Returns:\n . Newly created message Status:\n 1. 200 on success 2. 400 if some error occurs 3. 401 if un-authorized 4. 404 if user not found Notes:\n 1. Require user's token to be sent in the header as:\n Authorization: Token [token]\n """ me = request.user to_id = request.DATA.get("to") title = request.DATA.get("title") msg = request.DATA.get("message") to = User.objects.filter(id=to_id).first() if to: if Link.is_already_link(me, to): message = Message() message.from_user = me message.to_user = to message.title = title message.message = msg message.save() create_notification("MSG", message.id, me, to, message=msg) serializer = PlainMessageSerializer(message.plain()) return Response(serializer.data) return Response({ "status": HTTP_400_BAD_REQUEST, "message": "Cannot send message to a non-link" }, status=HTTP_400_BAD_REQUEST) return Response({ "status": HTTP_404_NOT_FOUND, "message": "User not found" }, status=HTTP_404_NOT_FOUND)