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
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
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
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
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()
def get_db() -> Generator: try: db = Session() yield db finally: db.close()