Пример #1
0
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'))
Пример #2
0
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')
Пример #3
0
    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
Пример #4
0
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')
Пример #5
0
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'))
    )
Пример #6
0
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')
Пример #7
0
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'])
Пример #8
0
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'))
Пример #10
0
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')
Пример #11
0
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')
Пример #12
0
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')
Пример #13
0
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
Пример #15
0
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'))
Пример #17
0
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
Пример #18
0
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')
Пример #19
0
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')
Пример #20
0
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')
Пример #21
0
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
Пример #22
0
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')
Пример #23
0
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
Пример #24
0
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'))