def get_groups_and_members(api_client, exchange_id): response = api_client.get('/v2/workspaces/{}/groups'.format(exchange_id), params={'includeWorkspaceGroupMembers': 'true'}, api_version=2) response.check(200, 'application/json') data = response.data() return (get_node_as_list(data, 'groups'), get_node_as_list(data, 'workspaceGroupMembers'))
def create_documents(api_client, exchange_id, documents, batch_id=None): #keys = {'name', 'parentId', 'note', 'effectiveDate'} created_documents = [entity_to_dict(d) for d in documents] xml_data = ['<documentCreateRequest>'] for f in created_documents: xml_data.append(to_xml(f, ['document', 'documentCreate'])) xml_data.append('</documentCreateRequest>') response = api_client.create('/services/workspaces/documents', params={ 'workspaceId': exchange_id, 'batchId': batch_id, }, data={'xml': ''.join(xml_data)}, api_version=1) response.check(200, 'text/xml') data = response.data() return get_node_as_list(data, 'documentPartial')
def _prepare_entity(self, prefix, entity, skip=None): new_entity = dict() for k in entity: if skip is not None and k in skip: continue elif k == 'customFields': custom_fields = get_node_as_list(entity, ['customFields', 'field']) for c in custom_fields: new_entity['{}.cf.{}'.format(prefix, c['id'])] = c['value'] elif k in { 'createdOn', 'lastModifiedOn', 'firstAccessed', 'lastAccessedOn', 'lastAlertSentDate' }: new_entity['{}.{}'.format(prefix, k)] = intralinks.utils.dates.to_date( entity[k]['milliseconds']) else: new_entity['{}.{}'.format(prefix, k)] = entity[k] return new_entity
def get_groups(api_client, exchange_id): response = api_client.get('/v2/workspaces/{}/groups'.format(exchange_id), api_version=2) response.check(200, 'application/json') data = response.data() return get_node_as_list(data, 'groups')
def get_groups_and_members(api_client, exchange_id): response = api_client.get( '/v1/services/workspaces/workspaceGroups', params={ 'workspaceId':exchange_id, 'includeWorkspaceGroupMembers':True }, api_version=1 ) response.check(200, 'text/xml') data = response.data() return ( get_node_as_list(data, ('workspaceGroups', 'workspaceGroup')), get_node_as_list(data, ('workspaceGroupMembers', 'workspaceGroupMember')) )
def get_batches(api_client, exchange_id, operation_type="Bulk Upload"): response = api_client.get('/v2/workspaces/{}/batches'.format(exchange_id), params={'operationType': operation_type}, api_version=2) response.check(200, 'application/json') data = response.data() return get_node_as_list(data, 'batches')
def get_batch_items(api_client, exchange_id, batch_id): response = api_client.get('/v2/workspaces/{}/batches/{}'.format( exchange_id, batch_id), api_version=2) response.check(200, 'application/json') data = response.data() return get_node_as_list(data, ['batchItemsResponse', 'contentList'])
def get_field_definitions(api_client, exchange_id): response = api_client.get('/services/workspaces/fieldDefinitions', params={'workspaceId': exchange_id}, api_version=1) response.check(200, 'text/xml') data = response.data() return get_node_as_list(data, ('fieldDefinitionList', 'fieldDefinition'))
def get_exchange_members(api_client, exchange_id): response = api_client.get('/v1/services/workspaces/workspaceUsers', params={'workspaceId': exchange_id}, api_version=1) response.check(200, 'text/xml') data = response.data() return get_node_as_list(data, ('workspaceUsers', 'workspaceUser'))
def get_documents(api_client, exchange_id): response = api_client.get('/services/workspaces/documents', params={'workspaceId': exchange_id}, api_version=1) response.check(200, 'text/xml') data = response.data() return get_node_as_list(data, 'document')
def get_permissions(api_client, exchange_id, document_id): response = api_client.get( '/v2/workspaces/{}/documents/{}/permissions'.format(exchange_id, document_id), api_version=2 ) response.check(200, 'application/json') data = response.data() return get_node_as_list(data, 'permissions')
def get_folder_custom_fields(api_client, exchange_id, folder_id): response = api_client.get( '/v2/workspaces/{}/folders/{}/customFields'.format( exchange_id, folder_id), api_version=2) response.check(200, 'application/json') data = response.data() return get_node_as_list(data, 'customFields')
def create_groups(api_client, exchange_id, groups): response = api_client.create( '/v2/workspaces/{}/groups'.format(exchange_id), data=json.dumps(new_groups), headers={'Content-Type': 'application/json'}, api_version=2) response.check(201, 'application/json') data = response.data() return get_node_as_list(data, ['workspaceGroups', 'workspaceGroupPartial'])
def get_exchange_members(api_client, exchange_id): response = api_client.get('/v2/workspaces/{}/users'.format(exchange_id), api_version=2) response.check(200, 'application/json') data = response.data() l = get_node_as_list(data, 'users') # Fix because the V2 API does not return 'unauthenticatedDocumentAccess' as a boolean convert_to_bool(l, 'unauthenticatedDocumentAccess') return l
def get_exchanges(api_client, brand_id=None, user_id=None, is_manager=None): response = api_client.get('/services/workspaces', params={ 'brandId': brand_id, 'userId': user_id, 'addUserRight': is_manager }, api_version=1) response.check(200, 'text/xml') data = response.data() return get_node_as_list(data, 'workspace')
def get_removed_exchange_members(api_client, exchange_id): response = api_client.get('/services/workspaces/smartfolders/items', params={ 'workspaceId': exchange_id, 'smartfolderId': 51, 'entityType': 'WORKSPACEUSER' }, api_version=1) response.check(200, 'text/xml') data = response.data() return get_node_as_list(data, ('workspaceUsers', 'workspaceUser'))
def get_folders(api_client, exchange_id): response = api_client.get( '/v2/workspaces/{}/folders'.format(exchange_id), api_version=2 ) response.check(200, 'application/json') data = response.data() l = get_node_as_list(data, 'folder') convert_to_bool(l, 'hasNote') return l
def get_alert_details(api_client, exchange_id, alert_type=None): response = api_client.get( '/services/workspaces/alertText', params={ 'workspaceId':exchange_id, 'workspaceAlertType':alert_type }, api_version=1 ) response.check(200, 'text/xml') data = response.data() return get_node_as_list(data, 'alertText')
def create_documents(api_client, exchange_id, documents, batch_id=None): document_data = [{'document': entity_to_dict(d)} for d in documents] response = api_client.create( '/v2/workspaces/{}/documents'.format(exchange_id), params={'batch_id': batch_id}, data=json.dumps({'documents': document_data}), headers={'Content-Type': 'application/json'}, api_version=2) response.check(201, 'application/json') data = response.data() return get_node_as_list(data, 'documentPartial')
def get_folders(api_client, exchange_id, folder_id=None): """ Does not retrieve the note """ response = api_client.get('/services/workspaces/folders', params={ 'workspaceId': exchange_id, 'folderId': folder_id }, api_version=1) response.check(200, 'text/xml') data = response.data() return get_node_as_list(data, 'folder')
def create_folders(api_client, exchange_id, folders): folders_data = [{'folder':entity_to_dict(f)} for f in folders] response = api_client.create( '/v2/workspaces/{}/folders'.format(exchange_id), data=json.dumps({'folders':folders_data}), headers={'Content-Type':'application/json'}, api_version=2 ) response.check(201, 'application/json') data = response.data() l = get_node_as_list(data, 'folderPartial') convert_to_bool(l, 'hasNote') return l
def create_folders(api_client, exchange_id, folders): created_folders = [entity_to_dict(f) for f in folders] xml_data = ['<folderCreateRequest>'] for f in created_folders: xml_data.append(to_xml(f, ['folder', 'folderCreate'])) xml_data.append('</folderCreateRequest>') response = api_client.create('/v1/services/workspaces/folders', params={'workspaceId': exchange_id}, data={'xml': ''.join(xml_data)}, api_version=1) response.check(200, 'text/xml') data = response.data() return get_node_as_list(data, 'folderPartial')
def get_exchanges(api_client, brand_id=None, user_id=None, is_manager=None): response = api_client.get( '/v2/workspaces', params={ 'brandId': brand_id, 'userId': user_id, 'addUserRight': ('T' if is_manager else 'F') if is_manager is not None else None }, api_version=2) response.check(200, 'application/json') data = response.data() l = get_node_as_list(data, 'workspace') # Fix because the V2 API does not return 'pvpEnabled' or 'htmlViewEnabled' as a boolean convert_to_bool(l, 'pvpEnabled') convert_to_bool(l, 'htmlViewEnabled') return l
def get_custom_alerts(api_client, exchange_id=None, template_id=None, alert_type=None, alert_locale=None): params = {'alertTypeId': alert_type, 'locale': alert_locale} if exchange_id is not None: params['resourceId'] = exchange_id params['resourceTypeId'] = AlertResourceType.EXCHANGE elif template_id is not None: params['resourceId'] = template_id params['resourceTypeId'] = AlertResourceType.TEMPLATE response = api_client.get('/services/customAlerts', params=params, api_version=1) response.check(200, 'text/xml') data = response.data() return get_node_as_list(data, ('customAlerts', 'customAlert'))