Example #1
0
def authenticate_api_key(key, secret):
    """Authenticate an API key"""
    s = Session()
    user = s.query(User).filter_by(api_key=key, api_secret=secret).first()
    s.close()

    return user
Example #2
0
    def user(self):
        """Load user on demand"""
        if not self.user_id:
            return None

        db = DbSession()
        user = db.Query(User).filter_by(self.user_id)
        db.close()

        return user
Example #3
0
def authenticate_auth_token(token):
    """Authenticate a jwt auth token"""
    try:
        payload = jwt.decode(token, TOKEN_SECRET_KEY)
    except:
        return None

    user_id = payload["sub"]

    s = Session()
    user = s.query(User).filter_by(id=user_id).first()
    s.close()

    return user
Example #4
0
def create_user(params: dict):
    """
    Create a user
    """
    password_hash = hash_password(params.get("password"))
    del params["password"]
    params["password_hash"] = password_hash

    user = models.User(**params)

    db = Session()
    db.add(user)
    db.commit()
    db.close()

    return user
Example #5
0
    def CreateCustomer(self, request, context):
        """
        Create a customer

        :param request: A CreateCustomerRequest
        :param context: The grpc context
        """
        # Validate customer
        errors = validate_customer(request.customer)
        if errors:
            return customers_pb2.CreateCustomerResponse(
                status=status_pb2.Status(code=400, data_errors=errors), )

        # Add customer to database
        db = Session()
        customer = Customer(request.customer)
        try:
            db.add(customer)
            db.commit()

            return customers_pb2.CreateCustomerResponse(
                customer=customer.to_message(customers_pb2.Customer),
                status=status_pb2.Status(code=200),
            )

        except Exception as e:
            db.rollback()

            return customers_pb2.CreateCustomerResponse(
                status=status_pb2.Status(code=500,
                                         runtime_errors=[
                                             exception_to_runtime_error(e)
                                         ]), )

        finally:
            db.close()
Example #6
0
def get_db() -> Generator:
    try:
        db = Session()
        yield db
    finally:
        db.close()