コード例 #1
0
def get_db():
    SessionLocal = get_session()
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()
コード例 #2
0
    async def _get(self, obj_id: Any):
        try:
            async with get_session() as db:
                smtm = await db.execute(select(self.model).filter(self.model.id == obj_id))
                return smtm.scalars().first()

        except (DataError, DatabaseError, DisconnectionError, IntegrityError) as err:
            logger.error(f"SQLAlchemy error {err}")
        except Exception as e:
            logger.error(f"Error in dao {e}")
            raise e
コード例 #3
0
    async def create(self, obj_in: CreateSchemaType) -> ModelType:
        try:
            data_db = self.obj_in_to_db_obj(obj_in=obj_in)
            async with get_session() as db:
                db.add(data_db)
                await db.commit()
                response = self.Meta.response_create_type.from_orm(data_db)

            return response
        except (DataError, DatabaseError, DisconnectionError, IntegrityError) as err:
            logger.error(f"SQLAlchemy error {err}")
        except Exception as e:
            logger.error(f"Error in dao {e}")
            raise e
コード例 #4
0
 async def update(self, obj_id: Any, obj_in: UpdateSchemaType) -> ModelType:
     try:
         db_obj = await self._get(obj_id)
         response = None
         if db_obj:
             db_obj = self.obj_in_to_db_obj_attrs(obj_in, db_obj)
             async with get_session() as db:
                 db.add(db_obj)
                 await db.commit()
                 response = self.Meta.response_update_type.from_orm(db_obj)
         return response
     except (DataError, DatabaseError, DisconnectionError, IntegrityError) as err:
         logger.error(f"SQLAlchemy error {err}")
     except Exception as e:
         logger.error(f"Error in dao {e}")
         raise e
コード例 #5
0
def get_current_user(token: str, ):
    credentials_exception = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": "Bearer"},
    )
    try:
        payload = jwt.decode(token,
                             settings.SECRET_KEY,
                             algorithms=[settings.ALGORITHM])
        document: str = payload.get("sub")
        if document is None:
            raise credentials_exception
    except JWTError:
        raise credentials_exception
    db = get_session()()

    user = _get_user(db, document=document)
    if user is None:
        raise credentials_exception
    return user
コード例 #6
0
 def get_orders(db=get_session()):
     orders = (db.query(Order).filter(
         ~Order.order_status.in_(["paid", "refused"])).all())
     return orders
コード例 #7
0
def get_db():
    session_local = get_session()
    db = session_local()
    return db