def login_user(): """ Allows users to log into their accounts""" try: with DatabaseConnection() as cursor: if not request.get_json(): return make_response( jsonify({"message": "Request should be json"}), 400) email = request.get_json()['email'] password = request.get_json()['password'] sql = "select user_id, email, password from users where email = %s and password = %s" cursor.execute(sql, (email, password)) user_id = cursor.fetchone() if user_id: token = User.encode_auth_token(user_id) if token: response = { 'user_id': user_id[0], 'message': 'You logged in successfully', 'token': token, 'email': email } return make_response(jsonify(response)) return make_response(jsonify({"message": "Please log in"})) else: return make_response( jsonify({"message": "wrong password or email credentials"})) except Exception as e: logging.error(e) return make_response(jsonify({'message': str(e)}), 401)
def test_encode_auth_token(self): user = User(first_name='First Name', last_name='Last Name', email='*****@*****.**', password='******') db.session.add(user) db.session.commit() auth_token = user.encode_auth_token(user.id) self.assertTrue(isinstance(auth_token, bytes))
def post(self): print("HEREEEEEEEEEEEEEEEEEEE") # DOESN'T PRINT. WHY? # get the post data post_data = request.get_json() # check if user already exists user = User.query.filter_by(email=post_data.get('email')).first() if not user: try: user = User( first_name=post_data.get('first_name'), last_name=post_data.get('last_name'), email=post_data.get('email'), password=post_data.get('password') ) # insert the user db.session.add(user) db.session.commit() # generate the auth token auth_token = user.encode_auth_token(user.id) responseObject = { 'status': 'success', 'message': 'Successfully registered.', 'auth_token': auth_token.decode() } return make_response(jsonify(responseObject)), 201 except Exception as e: responseObject = { 'status': 'fail', 'message': 'Some error occurred. Please try again.' } return make_response(jsonify(responseObject)), 401 else: responseObject = { 'status': 'fail', 'message': 'User already exists. Please Log in.', } return make_response(jsonify(responseObject)), 202