def _tus_response(self, status, data=None, extra_headers=None): response = Response(data, status) for key, value in self._base_tus_headers.items(): response.__setitem__(key, value) if extra_headers: for key, value in extra_headers.items(): response.__setitem__(key, value) return response
def post(self, request, **kwargs): #TODO: Logging. try: serializer = LoginSerializer(data=request.data) serializer.is_valid(raise_exception=True) user = Account.objects.get(email=serializer.data['email']) current_time = datetime.datetime.now().strftime( "%m/%d/%Y, %H:%M:%S") token = Encrypt.encode(user.id, current_time) Cache.getInstance().set("TOKEN_" + str(user.id) + "_AUTH", token) result = { 'status': True, 'message': 'Token generated.Login successful.' } response = Response(result, status=status.HTTP_200_OK, content_type="application/json") response.__setitem__(header="HTTP_AUTHORIZATION", value=token) return response except Account.DoesNotExist as e: result = {'status': False, 'message': 'Account does not exist'} return Response(result, status.HTTP_400_BAD_REQUEST, content_type="application/json") except AuthenticationFailed as e: result = {'status': False, 'message': 'Invalid credentials'} return Response(result, status.HTTP_401_UNAUTHORIZED, content_type="application/json") except Exception as e: result = { 'status': False, 'message': 'Some other issue.Please try again' } return Response(result, status.HTTP_400_BAD_REQUEST, content_type="application/json")
def post(self, request): """ it takes email id as input and sends verification email link :rtype: it returns a response message saying verification link is sent to mail """ result = {'message': 'some other issue', 'status': False} try: email = request.data.get('email', '') if Account.objects.filter(email=email).exists(): user = Account.objects.get(email=email) uidb64 = urlsafe_base64_encode(smart_bytes(user.id)) token = PasswordResetTokenGenerator().make_token(user) redirect_url = request.build_absolute_uri(reverse('password-reset-complete')) email_body = 'Hello, \n Your token number is : ' + token + ' \n your uidb64 code is ' + uidb64 + ' \n Use link below to reset your password \n' + "?redirect_url=" + redirect_url data = {'email_body': email_body, 'to_email': user.email, 'email_subject': 'Reset your passsword'} send_email.delay(data) result['message'] = 'We have sent you a link to reset your password' result['status'] = True response = Response(data=result, status=status.HTTP_200_OK) response.__setitem__(header="HTTP_AUTHORIZATION", value=data) logging.debug('{}, status_code = {}, token = {}'.format(result, status.HTTP_200_OK, token)) return response # return utils.manage_response(status=result['status'], message=result['message'], # status_code=status.HTTP_200_OK) else: result['message'] = "Email id you have entered doesn't exist" logging.debug('{}'.format(result)) return utils.manage_response(status=result['status'], message=result['message'], status_code=status.HTTP_400_BAD_REQUEST) except Exception as e: return utils.manage_response(status=result['status'], message=result['message'], exception=str(e), status_code=status.HTTP_400_BAD_REQUEST)