示例#1
0
async def listado_notificaciones_admin(
        admin: Administrador = Depends(get_current_admin), ):
    listado = await db.motor.find(NotificacionAdmin,
                                  NotificacionAdmin.responsable == admin.id)
    # listado = list(map(lambda x: NotificacionAdminRet(**x.dict()),listado))
    res = sorted(listado, key=lambda x: x.fecha)
    res = list(reversed(res))
    ids = {ObjectId(g.gerente) for g in res}
    gecoll = db.motor.get_collection(Gerente)

    docs = await gecoll.find({"_id": {"$in": list(ids)}}).to_list(length=None)

    gerentes = {}
    for g in docs:
        gerentes[str(g["_id"])] = ResGerenteBM(id=str(g["_id"]), **g)

    res = [
        NotificacionAdminRet(
            gerente=gerentes.get(b.gerente),
            tipo=b.tipo,
            contenido=b.contenido,
            fecha=b.fecha,
        ) for b in res
    ]

    return res
示例#2
0
 async def get(self, id: str, engine: Optional[AIOEngine] = None) -> Optional[Model]:
     query = self.model.id == ObjectId(id)
     return await (engine.find_one(self.model, query) if engine is not None else self.engine.find_one(self.model, query))
示例#3
0
 def get():
     return {"id": ObjectId(id_get_str)}
示例#4
0
async def desasigna_dispositivo(dispositivo_id: ObjectId, gerente: Gerente = Depends(get_current_gerente)):

    disp = await db.motor.find_one(DispositivoDB, DispositivoDB.id == dispositivo_id)
    if disp is None:
        raise HTTPException(
            status_code=status.HTTP_404_NOT_FOUND, detail="Dispositivo no existe")
    if disp is None or disp.establecimiento is None:
        return BasicReturn(done=False)

    establecimiento = await db.motor.find_one(EstablecimientoDB, EstablecimientoDB.id == ObjectId(disp.establecimiento))
    valida(establecimiento, gerente_id=gerente.id)
    disp.establecimiento = None
    await db.motor.save(disp)
    return BasicReturn()
示例#5
0
async def connect_dispositivo(dispositivo_id: str, _=Depends(get_current_gerente)):
    disp = await db.motor.find_one(DispositivoDB, DispositivoDB.id == ObjectId(dispositivo_id))
    disp.conectado = not disp.conectado
    await db.motor.save(disp)
    return disp
示例#6
0
async def activate_dispositivo(dispositivo_id: str, activado: bool, _=Depends(get_current_gerente)):
    disp = await db.motor.find_one(DispositivoDB, DispositivoDB.id == ObjectId(dispositivo_id))
    disp.activado = activado
    await db.motor.save(disp)
    return disp
示例#7
0
async def retrieve_dispositivo(dispositivo_id: str, _=Depends(get_current_gerente)):
    disp = await db.motor.find_one(DispositivoDB, DispositivoDB.id == ObjectId(dispositivo_id))
    return disp
示例#8
0
async def add_dispositivo(dispositivo: DispositivoCreate):
    disp = DispositivoDB(id = ObjectId(),**dispositivo.dict())
    await db.motor.save(disp)
    return {"id":str(disp.id)}