def asign_channel_to_manager( manager_id: str, channel_id:List[str], current_user= Security(deps.get_current_active_user,scopes=["channel_manager"]), db: Session = Depends(deps.get_db) ): manager=crud_user.get_user(db=db,user_id=manager_id) if manager is None or manager.role!="manager" : raise HTTPException( status_code=status.HTTP_502_BAD_GATEWAY, detail="Invalid manager id" ) for id in channel_id: if crud_channel.get_channel(db=db,channel_id=id) is None: raise HTTPException( status_code=status.HTTP_502_BAD_GATEWAY, detail="Invalid channel id" ) for id in channel_id: if not crud_channel_manager.get_channel_manager(db=db,channel_id=id,manager_id=manager_id) is None: if crud_channel.get_channel(db=db,channel_id=id): raise HTTPException( status_code=status.HTTP_502_BAD_GATEWAY, detail="Channel already asign to manager" ) for id in channel_id: crud_channel_manager.create_channel_manager(db=db,manager_id=manager_id,channel_id=id) return {"message":"update success"}
def add_manager_from_channel( channel_id:str, managers_id:List[str], current_user= Security(deps.get_current_active_user,scopes=["read_channel"]), db: Session = Depends(deps.get_db) ): invalid_list=[] if crud_channel.get_channel(db=db,channel_id=channel_id) is None: raise UnicornException( messages="CHANNEL ID NOT FOUND", name=channel_id ) if len(managers_id) ==0: raise UnicornException( messages="INVALID MANAGER ID LIST", name=managers_id ) for id in managers_id: if crud_user.get_user(db=db,user_id=id) is None or crud_user.get_user(db=db,user_id=id).role!="manager": invalid_list.append(id) if len(invalid_list) !=0: raise UnicornException( messages="INVALID MANAGER ID LIST", name=invalid_list ) for id in managers_id: if not crud_channel_manager.get_channel_manager(db=db,channel_id=channel_id,manager_id=id) is None: invalid_list.append(id) if len(invalid_list) !=0: raise UnicornException( messages="MANAGER ALREADY ASIGN TO CHANNEL", name=invalid_list ) for id in managers_id: crud_channel_manager.create_channel_manager(db=db,manager_id=id,channel_id=channel_id) return {"message":"add success"}
def asign_channel_to_manager(manager_id: str, channel_id: List[str], token: Optional[str] = Header(None), db: Session = Depends(deps.get_db)): try: check_sercurity_scopes(token=token, scopes=settings.ADD_CHANNEL_MANAGER_SCOPE) manager = crud_user.get_user(db=db, user_id=manager_id) if manager is None or manager.role != "manager": raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY, detail="Invalid manager id") for id in channel_id: if crud_channel.get_channel(db=db, channel_id=id) is None: raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY, detail="Invalid channel id") for id in channel_id: if not crud_channel_manager.get_channel_manager( db=db, channel_id=id, manager_id=manager_id) is None: if crud_channel.get_channel(db=db, channel_id=id): raise HTTPException( status_code=status.HTTP_502_BAD_GATEWAY, detail="Channel already asign to manager") for id in channel_id: crud_channel_manager.create_channel_manager(db=db, manager_id=manager_id, channel_id=id) except (JWTError, ValidationError): raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Unauthorized ", headers={"WWW-Authenticate": "Bearer"}, ) except (mysql.connector.Error): raise HTTPException( status_code=status.HTTP_502_BAD_GATEWAY, detail="My sql connection error ", headers={"WWW-Authenticate": "Bearer"}, ) return {"message": "update success"}
def add_manager_from_channel(channel_id: str, managers_id: List[str], current_user=Security( deps.get_current_active_user, scopes=["read_channel"]), db: Session = Depends(deps.get_db)): if len(managers_id) == 0: raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY, detail="Invalid manager id list ") for id in managers_id: if crud_user.get_user(db=db, user_id=id) is None or crud_user.get_user( db=db, user_id=id).role != "manager": raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY, detail="Invalid manager id list ") for id in managers_id: if not crud_channel_manager.get_channel_manager( db=db, channel_id=channel_id, manager_id=id) is None: raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY, detail="Manager already asign to channel") for id in managers_id: crud_channel_manager.create_channel_manager(db=db, manager_id=id, channel_id=channel_id) return {"message": "add success"}
def add(channel_id: str, manager_id: str, db: Session = Depends(deps.get_db)): crud_channel_manager.create_channel_manager(db=db, manager_id=manager_id, channel_id=channel_id)