Exemplo n.º 1
0
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"}
Exemplo n.º 2
0
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"}
Exemplo n.º 3
0
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"}
Exemplo n.º 4
0
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"}
Exemplo n.º 5
0
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)