Esempio n. 1
0
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)
Esempio n. 2
0
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)