def create(): req_data = request.get_json() data, error = user_schema.load(req_data) if error: return custom_response(error, 400) user_in_db = User.get_by_email(data.get('email')) if user_in_db: message = {'error': 'User already exists'} return custom_response(message, 400) user = User( name=data.get('name'), email=data.get('email'), ) user.set_password(password=data.get('password')) user.save() serialized_data = user_schema.dump(user).data token = Auth.generate_token(serialized_data.get('uid')) return custom_response( { 'jwt_token': token, 'uid': serialized_data.get('uid'), }, 201)
def login(): req_data = request.get_json() data, error = user_schema.load(req_data, partial=True) if error: return custom_response(error, 400) if not data.get('email') or not data.get('password'): return custom_response( {'error': 'you need email and password to sign in'}, 400) user = User.get_by_email(data.get('email')) if not user: return custom_response({'error': 'invalid credentials'}, 400) if not user.check_password(data.get('password')): return custom_response({'error': 'invalid credentials'}, 400) serialized_data = user_schema.dump(user).data token = Auth.generate_token(serialized_data.get('uid')) return custom_response( { 'jwt_token': token, 'uid': serialized_data.get('uid'), }, 200)