Example #1
0
def patch_member(request):
    phone_number = request.POST.get("phone_number", "")
    try:
        person = Person.objects.get(phone_number=phone_number)
    except Person.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)
    operation = request.POST.get("operation", "")
    if operation == 'change_password':
        mobsms = MobSMS()
        if not mobsms.verify_sms_code("86", request.POST["phone_number"],
                                      request.POST["identify"]):
            return Response(status=status.HTTP_401_UNAUTHORIZED)
        person.password = hashlib.md5(request.POST["password"]).hexdigest()
    elif operation == 'change_portrait':
        if not check_token(request.POST.get("token", ''), phone_number):
            return Response(data={'detail': 'unauthorized'},
                            status=status.HTTP_401_UNAUTHORIZED)
        person.portrait = request.FILES['portrait']
    elif operation == 'change_others':
        if not check_token(request.POST.get("token", ''), phone_number):
            return Response(data={'detail': 'unauthorized'},
                            status=status.HTTP_401_UNAUTHORIZED)
        person.name = request.POST['name']
        person.location = request.POST['location']
    else:
        return Response(status=status.HTTP_404_NOT_FOUND)
    person.save()
    return Response(status=status.HTTP_204_NO_CONTENT)
Example #2
0
def patch_member(request):
    phone_number = request.POST.get("phone_number", "")
    try:
        person = Person.objects.get(phone_number=phone_number)
    except Person.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)
    operation = request.POST.get("operation", "")
    if operation == "change_password":
        mobsms = MobSMS()
        if not mobsms.verify_sms_code("86", request.POST["phone_number"], request.POST["identify"]):
            return Response(status=status.HTTP_401_UNAUTHORIZED)
        person.password = hashlib.md5(request.POST["password"]).hexdigest()
    elif operation == "change_portrait":
        if not check_token(request.POST.get("token", ""), phone_number):
            return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
        person.portrait = request.FILES["portrait"]
    elif operation == "change_others":
        if not check_token(request.POST.get("token", ""), phone_number):
            return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
        person.name = request.POST["name"]
        person.location = request.POST["location"]
    else:
        return Response(status=status.HTTP_404_NOT_FOUND)
    person.save()
    return Response(status=status.HTTP_204_NO_CONTENT)
Example #3
0
def get_words(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={'detail': 'unauthorized'},
                        status=status.HTTP_401_UNAUTHORIZED)
    number = request.POST['to_phone_number']
    start = request.POST.get('start', '')
    end = request.POST.get('end', '')

    if not start == '' and not end == '':
        data = Person.objects.get(phone_number=number).words.order_by(
            "-created")[int(start):int(end)]
    else:
        data = Person.objects.get(
            phone_number=number).words.order_by("-created")[int(start):]

    def _change(obj):
        obj.if_read = True
        obj.save()

    try:
        ser = WordsSerializer(data, many=True)
        return Response(ser.data)
    finally:
        if number == phone_number:
            map(_change, data)
Example #4
0
def logout_member(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
    obj = Person.objects.get(phone_number=phone_number)
    obj.token = ""
    obj.save()
    return Response(status=status.HTTP_204_NO_CONTENT)
Example #5
0
def get_replies(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
    time = request.POST["time"]
    replies = Person.objects.get(phone_number=phone_number).replies.extra(where=["created > %s"], params=[time])
    ser = CommentSerializer(replies, many=True)
    return Response(ser.data)
Example #6
0
def logout_member(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={'detail': 'unauthorized'},
                        status=status.HTTP_401_UNAUTHORIZED)
    obj = Person.objects.get(phone_number=phone_number)
    obj.token = ""
    obj.save()
    return Response(status=status.HTTP_204_NO_CONTENT)
Example #7
0
def add_news(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
    serializer = NewsSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save(commit_person_id=phone_number)
        return Response(status=status.HTTP_204_NO_CONTENT)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Example #8
0
def add_message(request):
    phone_number = request.POST.get("phone_number", "")
    if not check_token(request.POST.get("token", ""), phone_number):
        return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
    serializer = MessageSerializer(data=request.data)
    if serializer.is_valid():
        person = Person.objects.get(phone_number=phone_number)
        serializer.save(commit_person_id=phone_number, commit_location=person.location)
        return Response(status=status.HTTP_204_NO_CONTENT)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Example #9
0
def add_news(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={'detail': 'unauthorized'},
                        status=status.HTTP_401_UNAUTHORIZED)
    serializer = NewsSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save(commit_person_id=phone_number)
        return Response(status=status.HTTP_204_NO_CONTENT)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Example #10
0
def get_replies(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={'detail': 'unauthorized'},
                        status=status.HTTP_401_UNAUTHORIZED)
    time = request.POST['time']
    replies = Person.objects.get(phone_number=phone_number).replies.extra(
        where=["created > %s"], params=[time])
    ser = CommentSerializer(replies, many=True)
    return Response(ser.data)
Example #11
0
def operate_news(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={'detail': 'unauthorized'},
                        status=status.HTTP_401_UNAUTHORIZED)
    id_ = request.POST.get('id', '')
    operation = request.POST.get('operation', '')
    try:
        news = News.objects.get(id=id_)
    except News.DoesNotExist:
        return Response(data={'detail': 'news does not exist'},
                        status=status.HTTP_400_BAD_REQUEST)
    if operation == 'DELETE':
        if news.commit_person_id == phone_number:
            for comment in news.comment_set.iterator():
                comment.delete()
            news.delete()
            return Response(status=status.HTTP_204_NO_CONTENT)
        else:
            return Response(data="this message's owner is not you",
                            status=status.HTTP_401_UNAUTHORIZED)
    elif operation == 'COMMENT':
        serializer = CommentSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save(commit_person_id=phone_number, news=news)
            news.comments_number += 1
            news.save()
            return Response(status=status.HTTP_204_NO_CONTENT)
        else:
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
    elif operation == 'UNCOMMENT':
        comment = Comment.objects.get(id=request.POST['comment_id'])
        if comment.commit_person_id == phone_number:
            comment.delete()
            news.comments_number -= 1
            news.save()
            return Response(status=status.HTTP_204_NO_CONTENT)
        return Response(status.HTTP_401_UNAUTHORIZED)
    elif operation == 'FOLLOW':
        person = Person.objects.get(phone_number=phone_number)
        news.followers.add(person)
        news.following_number += 1
        news.save()
        return Response(status=status.HTTP_204_NO_CONTENT)
    elif operation == 'UNFOLLOW':
        person = Person.objects.get(phone_number=phone_number)
        news.followers.remove(person)
        news.following_number -= 1
        news.save()
        return Response(status=status.HTTP_204_NO_CONTENT)
    elif operation == 'SHARE':
        news.share_number += 1
        news.save()
        return Response(status=status.HTTP_204_NO_CONTENT)
Example #12
0
def delete_words(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
    to_number = request.POST["to_phone_number"]
    from_number = request.POST["from_phone_number"]
    _id = request.POST["id"]
    if not phone_number == from_number and not phone_number == to_number:
        return Response(status=status.HTTP_401_UNAUTHORIZED)
    words = Person.objects.get(phone_number=to_number).words.get(from_person=from_number).get(id=_id)
    words.delete()
    return Response(status=status.HTTP_204_NO_CONTENT)
Example #13
0
def add_words(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
    ser = WordsSerializer(data=request.data)
    from_person = Person.objects.get(phone_number=phone_number)
    to_person = Person.objects.get(phone_number=request.POST["to_phone_number"])
    if ser.is_valid():
        ser.save(from_person=from_person, to_person=to_person)
        return Response(status=status.HTTP_204_NO_CONTENT)
    else:
        return Response(ser.errors, status=status.HTTP_400_BAD_REQUEST)
Example #14
0
def add_message(request):
    phone_number = request.POST.get("phone_number", '')
    if not check_token(request.POST.get("token", ""), phone_number):
        return Response(data={'detail': 'unauthorized'},
                        status=status.HTTP_401_UNAUTHORIZED)
    serializer = MessageSerializer(data=request.data)
    if serializer.is_valid():
        person = Person.objects.get(phone_number=phone_number)
        serializer.save(commit_person_id=phone_number,
                        commit_location=person.location)
        return Response(status=status.HTTP_204_NO_CONTENT)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Example #15
0
def operate_news(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
    id_ = request.POST.get("id", "")
    operation = request.POST.get("operation", "")
    try:
        news = News.objects.get(id=id_)
    except News.DoesNotExist:
        return Response(data={"detail": "news does not exist"}, status=status.HTTP_400_BAD_REQUEST)
    if operation == "DELETE":
        if news.commit_person_id == phone_number:
            for comment in news.comment_set.iterator():
                comment.delete()
            news.delete()
            return Response(status=status.HTTP_204_NO_CONTENT)
        else:
            return Response(data="this message's owner is not you", status=status.HTTP_401_UNAUTHORIZED)
    elif operation == "COMMENT":
        serializer = CommentSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save(commit_person_id=phone_number, news=news)
            news.comments_number += 1
            news.save()
            return Response(status=status.HTTP_204_NO_CONTENT)
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    elif operation == "UNCOMMENT":
        comment = Comment.objects.get(id=request.POST["comment_id"])
        if comment.commit_person_id == phone_number:
            comment.delete()
            news.comments_number -= 1
            news.save()
            return Response(status=status.HTTP_204_NO_CONTENT)
        return Response(status.HTTP_401_UNAUTHORIZED)
    elif operation == "FOLLOW":
        person = Person.objects.get(phone_number=phone_number)
        news.followers.add(person)
        news.following_number += 1
        news.save()
        return Response(status=status.HTTP_204_NO_CONTENT)
    elif operation == "UNFOLLOW":
        person = Person.objects.get(phone_number=phone_number)
        news.followers.remove(person)
        news.following_number -= 1
        news.save()
        return Response(status=status.HTTP_204_NO_CONTENT)
    elif operation == "SHARE":
        news.share_number += 1
        news.save()
        return Response(status=status.HTTP_204_NO_CONTENT)
Example #16
0
def delete_words(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={'detail': 'unauthorized'},
                        status=status.HTTP_401_UNAUTHORIZED)
    to_number = request.POST["to_phone_number"]
    from_number = request.POST["from_phone_number"]
    _id = request.POST["id"]
    if not phone_number == from_number and not phone_number == to_number:
        return Response(status=status.HTTP_401_UNAUTHORIZED)
    words = Person.objects.get(phone_number=to_number).words.get(
        from_person=from_number).get(id=_id)
    words.delete()
    return Response(status=status.HTTP_204_NO_CONTENT)
Example #17
0
def add_words(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={'detail': 'unauthorized'},
                        status=status.HTTP_401_UNAUTHORIZED)
    ser = WordsSerializer(data=request.data)
    from_person = Person.objects.get(phone_number=phone_number)
    to_person = Person.objects.get(
        phone_number=request.POST['to_phone_number'])
    if ser.is_valid():
        ser.save(from_person=from_person, to_person=to_person)
        return Response(status=status.HTTP_204_NO_CONTENT)
    else:
        return Response(ser.errors, status=status.HTTP_400_BAD_REQUEST)
Example #18
0
def operate_message(request):
    phone_number = request.POST.get("phone_number", '')
    if not check_token(request.POST.get("token", ''), phone_number):
        return Response(data={'detail': 'unauthorized'},
                        status=status.HTTP_401_UNAUTHORIZED)
    id_ = request.POST.get('id', '')
    operation = request.POST.get('operation', '')
    try:
        message = Message.objects.get(id=id_)
    except Message.DoesNotExist:
        return Response(data={'detail': 'message does not exist'},
                        status=status.HTTP_400_BAD_REQUEST)
    if operation == 'DELETE':
        if message.commit_person_id == phone_number:
            for comment in message.comment_set.iterator():
                comment.delete()
            message.delete()
            return Response(status=status.HTTP_204_NO_CONTENT)
        else:
            return Response(data="this message's owner is not you",
                            status=status.HTTP_400_BAD_REQUEST)
    elif operation == 'COMMENT':
        serializer = CommentSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save(commit_person_id=phone_number, message=message)
            message.comments_number += 1
            message.save()
            return Response(status=status.HTTP_204_NO_CONTENT)
        else:
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
    elif operation == 'UNCOMMENT':
        serializer = Comment.objects.get(id=request.POST['comment_id'])
        if serializer.commit_person_id == phone_number:
            serializer.delete()
            message.comments_number -= 1
            message.save()
            return Response(status=status.HTTP_204_NO_CONTENT)
        return Response(status.HTTP_401_UNAUTHORIZED)
    elif operation == 'SHARE':
        message.share_number += 1
        message.save()
        return Response(status=status.HTTP_204_NO_CONTENT)
Example #19
0
def operate_message(request):
    phone_number = request.POST.get("phone_number", "")
    if not check_token(request.POST.get("token", ""), phone_number):
        return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
    id_ = request.POST.get("id", "")
    operation = request.POST.get("operation", "")
    try:
        message = Message.objects.get(id=id_)
    except Message.DoesNotExist:
        return Response(data={"detail": "message does not exist"}, status=status.HTTP_400_BAD_REQUEST)
    if operation == "DELETE":
        if message.commit_person_id == phone_number:
            for comment in message.comment_set.iterator():
                comment.delete()
            message.delete()
            return Response(status=status.HTTP_204_NO_CONTENT)
        else:
            return Response(data="this message's owner is not you", status=status.HTTP_400_BAD_REQUEST)
    elif operation == "COMMENT":
        serializer = CommentSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save(commit_person_id=phone_number, message=message)
            message.comments_number += 1
            message.save()
            return Response(status=status.HTTP_204_NO_CONTENT)
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    elif operation == "UNCOMMENT":
        serializer = Comment.objects.get(id=request.POST["comment_id"])
        if serializer.commit_person_id == phone_number:
            serializer.delete()
            message.comments_number -= 1
            message.save()
            return Response(status=status.HTTP_204_NO_CONTENT)
        return Response(status.HTTP_401_UNAUTHORIZED)
    elif operation == "SHARE":
        message.share_number += 1
        message.save()
        return Response(status=status.HTTP_204_NO_CONTENT)
Example #20
0
def get_words(request):
    phone_number = request.POST["phone_number"]
    if not check_token(request.POST["token"], phone_number):
        return Response(data={"detail": "unauthorized"}, status=status.HTTP_401_UNAUTHORIZED)
    number = request.POST["to_phone_number"]
    start = request.POST.get("start", "")
    end = request.POST.get("end", "")

    if not start == "" and not end == "":
        data = Person.objects.get(phone_number=number).words.order_by("-created")[int(start) : int(end)]
    else:
        data = Person.objects.get(phone_number=number).words.order_by("-created")[int(start) :]

    def _change(obj):
        obj.if_read = True
        obj.save()

    try:
        ser = WordsSerializer(data, many=True)
        return Response(ser.data)
    finally:
        if number == phone_number:
            map(_change, data)