def create_platform(workspace_id: int, platform_data) -> dict: """ Create a new platform entry :param workspace_id: :param platform_data: :return: """ platform_name = shlex.quote(platform_data['name']) platform_url = shlex.quote(platform_data['url']) session = db_session() workspace = session.query(Workspace).filter(Workspace.id == workspace_id).first() if workspace is None: raise NotFound("workspace with id {} could not be found".format(workspace_id)) existing_platforms = session.query(Platform). \ filter(Platform.workspace == workspace). \ filter(Platform.name == platform_data['name']). \ all() if len(existing_platforms) > 0: raise NameConflict("Platform with name {} already exists".format(platform_data['name'])) platform = Platform(name=platform_name, url=platform_url, workspace=workspace) session.add(platform) update_workspace_descriptor(platform.workspace) session.commit() return platform.as_dict()
def create_platform(workspace_id: int, platform_data) -> dict: """ Create a new platform entry :param workspace_id: :param platform_data: :return: """ platform_name = shlex.quote(platform_data['name']) platform_url = shlex.quote(platform_data['url']) session = db_session() workspace = session.query(Workspace).filter( Workspace.id == workspace_id).first() if workspace is None: raise NotFound( "workspace with id {} could not be found".format(workspace_id)) existing_platforms = session.query(Platform). \ filter(Platform.workspace == workspace). \ filter(Platform.name == platform_data['name']). \ all() if len(existing_platforms) > 0: raise NameConflict("Platform with name {} already exists".format( platform_data['name'])) platform = Platform(name=platform_name, url=platform_url, workspace=workspace) session.add(platform) update_workspace_descriptor(platform.workspace) session.commit() return platform.as_dict()