class AuthRouter(Resource): def __init__(self): self.resellerService = ResellerService() self.authService = AuthService() def post(self, *args, **kwargs): json = request.get_json() or None if json is None: return bad_request() try: data = LoginSchema().load(json) reseller = self.resellerService.get_by_cpf(data["cpf"]) if reseller == None: return bad_request( f'Reseller: {data["cpf"]} not found, please register before to tryng login' ) if not reseller.active: return bad_request(f'Reseller: {data["cpf"]} are disabled') if not self.authService.login(reseller, data["password"]): return bad_request("Check username and password") jwt = { 'token': create_access_token(identity=reseller.cpf), 'refresh': create_refresh_token(identity=reseller.cpf) } return ok(data=jwt) except NotFoundError: return bad_request('Reseller not found') except SchemaValidationError as e: return bad_request(errors=e.messages) except Exception as e: return error(e)
def login(): """Log a user in. Args : data = { username } Returns : A user object """ data = request.json if not data["username"]: return json_abort(400, f"Empty string not allowed as a username") user = AuthService.login(data["username"]) return jsonify(user)