def get_workflow_instances(base_url, digest_login, params): """ Get workflow instances. :param base_url: The URL for the request :type base_url: str :param digest_login: The login credentials for digest authentication :type digest_login: DigestLogin :param params: Additional parameters :type params: dict :return: list of workflow instances :rtype: dict """ url = '{}/workflow/instances.json'.format(base_url) for i, param in enumerate(params): if i == 0: url += "?" else: url += "&" url += param + "=" + params.get(param) response = get_request(url, digest_login, "workflow instances") return get_json_content(response)["workflows"]
def __get_acls_of_event(event, base_url, digest_login): """ Get two lists for episode and series ACLs for a given event. :param event: The event :type event: dict :param base_url: The base URL for the request :type base_url: str :param digest_login: The login credentials for digest authentication :type digest_login: DigestLogin :return: The episode and series acls :rtype: list, list :raise RequestError: """ url = '{}/admin-ng/event/{}/asset/attachment/attachments.json'.format(base_url, get_id(event)) response = get_request(url, digest_login, ElementDescription.EVENT.unknown(), AssetTypeDescription.BOTH.plural(), AssetDescription.ACL.plural()) json_content = get_json_content(response) episode_acls = [__get_asset_content(acl, digest_login, ElementDescription.EVENT.unknown(), AssetTypeDescription.EPISODE.singular(), AssetDescription.ACL.singular()) for acl in json_content if "security-policy-episode" in acl["id"]] series_acls = [__get_asset_content(acl, digest_login, ElementDescription.EVENT.unknown(), AssetTypeDescription.SERIES.singular(), AssetDescription.ACL.singular()) for acl in json_content if "security-policy-series" in acl["id"]] return episode_acls, series_acls
def __get_dcs_of_event(event, base_url, digest_login): """ Get two lists for episode and series Dublin Core catalogs for a given event. :param event: The event :type event: dict :param base_url: The base URL for the request :type base_url: str :param digest_login: The login credentials for digest authentication :type digest_login: DigestLogin :return: The episode and series Dublin Core catalogs :rtype: list, list :raise RequestError: """ url = '{}/admin-ng/event/{}/asset/catalog/catalogs.json'.format(base_url, get_id(event)) response = get_request(url, digest_login, ElementDescription.EVENT.unknown(), AssetTypeDescription.BOTH.plural(), AssetDescription.DC.plural()) json_content = get_json_content(response) episode_dcs = [__get_asset_content(catalog, digest_login, ElementDescription.EVENT.unknown(), AssetTypeDescription.EPISODE.singular(), AssetDescription.DC.singular()) for catalog in json_content if "dublincore/episode" in catalog["type"]] series_dcs = [__get_asset_content(catalog, digest_login, ElementDescription.EVENT.unknown(), AssetTypeDescription.SERIES.singular(), AssetDescription.DC.singular()) for catalog in json_content if "dublincore/series" in catalog["type"]] return episode_dcs, series_dcs
def __get_acl_of_series(series, base_url, digest_login): """ Get the series ACL for a given series. :param series: The series :type series: dict :param base_url: The base URL for the request :type base_url: str :param digest_login: The login credentials for digest authentication :type digest_login: DigestLogin :return: The series ACL :rtype: dict :raise RequestError: """ url = "{}/series/{}/acl.json".format(base_url, get_id(series)) response = get_request(url, digest_login, ElementDescription.SERIES.unknown(), AssetTypeDescription.SERIES.singular(), AssetDescription.ACL.singular()) json_content = get_json_content(response) series_acl = json_content["acl"] return series_acl
def get_tenants(base_url, digest_login): """ Return a sorted list of unique tenant IDs :param base_url: The URL to an opencast instance :type base_url: str :param digest_login: The login credentials for digest authentication :type digest_login: DigestLogin :return: tenant ids :raise RequestError: """ url = '{}/org/all.json'.format(base_url) response = get_request(url, digest_login, "tenants") json_content = get_json_content(response) if isinstance(json_content["organizations"]["organization"], list): tenants = [ org["id"] for org in (json_content["organizations"])["organization"] ] tenants = sorted(set(tenants)) else: tenants = [json_content["organizations"]["organization"]["id"]] return tenants
def get_events_of_series(base_url, digest_login, series_id): """ Get the events for a series from the API :param base_url: The base URL for the request :type base_url: str :param digest_login: The login credentials for digest authentication :type digest_login: DigestLogin :param series_id: The series id :type series_id: str :return: list of events :rtype: list :raise RequestError: """ url = '{}/api/events/?filter=is_part_of:{}'.format(base_url, series_id) response = get_request(url, digest_login, "events") return get_json_content(response)
def get_events(base_url, digest_login): """ Return all events of one tenant. :param base_url: The URL to an opencast instance including the tenant :type base_url: str :param digest_login: The login credentials for digest authentication :type digest_login: DigestLogin :return: events """ url = '{}/admin-ng/event/events.json?limit={}'.format( base_url, JAVA_MAX_INT) response = get_request(url, digest_login, "events") json_content = get_json_content(response) return json_content["results"]
def get_episode_from_search(base_url, digest_login, event_id): """ Get episode from search as json. :param base_url: The base URL for the request :type base_url: str :param digest_login: The login credentials for digest authentication :type digest_login: DigestLogin :param event_id: The event id :type event_id: str :return: episode as json or None :rtype: episode as json or None :raise RequestError: """ url = '{}/search/episode.json?id={}'.format(base_url, event_id) response = get_request(url, digest_login, "search episode") search_results = get_json_content(response)["search-results"] if "result" in search_results: return search_results["result"] return None