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