def post(self, request): email = get_value_or_404(request.data, 'email') password = get_value_or_404(request.data, 'password') try: context = utils.get_user_from_email(email=email, password=password) return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def post_file(request): bucket = get_value_or_404(request.data, 'bucket') file_name = get_value_or_404(request.data, 'file_name') try: file = models.File.store_public_file(bucket=bucket, file_name=file_name) context = {'file': file, 'message': 'success'} return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def get_chat(request, chat_id): try: chat = serializers.ChatSerializer( models.Chat.get_for_user(user=request.user, id=chat_id)).data context = {'chat': chat} return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def get_last_opened_info(request): try: start = datetime.create_datetime_from_iso(get_value_or_default(request.data, 'start', None), 'Asia/Kolkata') end = datetime.create_datetime_from_iso(get_value_or_default(request.data, 'end', None), 'Asia/Kolkata') count = analytics.get_last_opened_info(start=start, end=end) context = {"count": count} return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def post(self, request): email = get_value_or_default(request.data, 'email', None) phone = get_value_or_default(request.data, 'phone', None) password = get_value_or_404(request.data, 'password') try: context = utils.auth_signin(email=email, phone=phone, password=password) return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def post(self, request): phone = get_value_or_404(request.data, 'phone_number') otp = get_value_or_404(request.data, 'otp') try: context = utils.get_user_from_phone(phone=phone, phone_otp=otp) context['user'] = user_serializers.UserProfileDetailSerializer(context['user'].userprofile).data return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def reset_password(request): try: old_password = get_value_or_404(request.data, 'old_password') password1 = get_value_or_404(request.data, 'password1') password2 = get_value_or_404(request.data, 'password2') utils.reset_password(user=request.user, old_password=old_password, password1=password1, password2=password2) context = {'message': 'Password successfully changed'} return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def forgot_password(request): try: email_otp = get_value_or_default(request.data, 'email_otp', None) phone_otp = get_value_or_default(request.data, 'phone_otp', None) password1 = get_value_or_404(request.data, 'password1') password2 = get_value_or_404(request.data, 'password2') utils.forgot_password(user=request.user, password1=password1, password2=password2, email_otp=email_otp, phone_otp=phone_otp) context = {'message': 'Password successfully changed'} return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def put(self, request, format=None): phone = get_value_or_404(request.data, 'phone_number') otp = get_value_or_404(request.data, 'otp') try: user = user_models.UserProfile.create_with_phone(phone=phone, email=None, first_name=None, last_name=None, username=None, otp=otp).user token = jwt_utils.get_token_for_user(user) userprofile = user_serializers.UserProfileDetailSerializer(user.userprofile).data data = {'username': user.username, 'token': token, 'user_id': user.id, 'user': userprofile} return Response(success_resp(data=data), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def set_password(request): try: password1 = get_value_or_404(request.data, 'password1') password2 = get_value_or_404(request.data, 'password2') if password1 != password2: raise_error('ERR-AUTH-004') request.user.set_password(password1) request.user.save() context = {'message': 'Password successfully changed'} return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def get_old_message(request, chat_id): try: offset = get_value_or_404(request.GET, 'offset') data = models.Chat.get_old_messages_for_chat(user=request.user, chat_id=chat_id, offset=offset) messages = serializers.MessageSerializer(data['messages'], many=True).data context = {'messages': messages} return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def registration(request): try: operation = get_value_or_404(request.data, 'operation') phone = get_value_or_404(request.data, 'phone') OTP = get_value_or_default(request.data, 'OTP', None) email = get_value_or_default(request.data, 'email', None) password = get_value_or_default(request.data, 'password', None) first_name = get_value_or_default(request.data, 'first_name', None) last_name = get_value_or_default(request.data, 'last_name', None) username = get_value_or_default(request.data, 'username', None) context = utils.registration(operation=operation, phone=phone, OTP=OTP, first_name=first_name, last_name=last_name, email=email, password=password) return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def get_chat_list(request): try: offset = int(get_value_or_default(request.GET, 'offset', 0)) data = models.Chat.get_chats(user=request.user, offset=offset) chats = serializers.ChatMiniSerializer(data['chats'], many=True, context={ 'user': request.user }).data context = {'chats': chats, 'count': data['count']} return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def put(self, request, format=None): phone = get_value_or_404(request.data, 'phone_number') password1 = get_value_or_404(request.data, 'password1') password2 = get_value_or_404(request.data, 'password2') email = get_value_or_default(request.data, 'email', None) first_name = get_value_or_default(request.data, 'first_name', None) last_name = get_value_or_default(request.data, 'last_name', None) username = get_value_or_default(request.data, 'username', None) otp = get_value_or_default(request.data, 'otp') try: context = utils.create_user_from_phone(phone=phone, username=username, email=email, first_name=first_name, last_name=last_name, password1=password1, password2=password2, otp=otp) return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)
def add_message(request, chat_id): try: message = get_value_or_404(request.data, 'message') reference_type = get_value_or_default(request.data, 'reference_type', None) reference_id = get_value_or_default(request.data, 'reference_id', None) data = models.Chat.add_message(chat_id=chat_id, from_user=request.user, message=message, reference_id=reference_id, reference_type=reference_type) message = serializers.MessageSerializer(data['message']).data print(message) context = { 'message': message, 'total_messages_count': data['message'].message_number } return Response(success_resp(data=context), status=status.HTTP_200_OK) except ValueError as ve: return Response(error_resp(message=str(ve)), status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response(error_resp(message=str(e)), status=status.HTTP_400_BAD_REQUEST)