コード例 #1
0
def delete_list_item(web_url, ctx_auth, list_title, item_id):
    """Delete list item example"""
    request = ClientRequest(web_url, ctx_auth)
    request_url = "{0}/_api/web/lists/getbyTitle('{1}')/items({2})".format(
        web_url, list_title, item_id)
    print "Deleting list item..."
    headers = {'IF-MATCH': '*', 'X-HTTP-Method': 'DELETE'}
    request.execute_query_direct(request_url=request_url, headers=headers)
    print "Task has been successfully [deleted]"
コード例 #2
0
def update_list_item(web_url, ctx_auth, list_title, item_id):
    """Update list item example"""
    request = ClientRequest(web_url, ctx_auth)
    request_url = "{0}/_api/web/lists/getbyTitle('{1}')/items({2})".format(web_url, list_title, item_id)
    print("Updating list item...")
    item_payload = {'__metadata': {'type': 'SP.Data.TasksListItem'}, 'Title': 'New Task (updated)'}
    headers = {
        'IF-MATCH': '*',
        'X-HTTP-Method': 'MERGE'
    }
    request.execute_query_direct(request_url=request_url, headers=headers, data=item_payload)
    print("Task has been successfully [updated]")
コード例 #3
0
def read_list_items(web_url, ctx_auth, list_title):
    """Read list items example"""
    request = ClientRequest(web_url, ctx_auth)
    request_url = "{0}/_api/web/lists/getbyTitle('{1}')/items".format(web_url, list_title)  # Web resource endpoint

    print("Retrieving list items from List {0}".format(list_title))
    data = request.execute_query_direct(request_url=request_url)
    for item in data['d']['results']:
        print("Item title: {0}".format(item["Title"]))
コード例 #4
0
def create_list_item(web_url, ctx_auth, list_title):
    """Create list item example"""
    request = ClientRequest(web_url, ctx_auth)
    request_url = "{0}/_api/web/lists/getbyTitle('{1}')/items".format(web_url, list_title)  # Web resource endpoint

    print("Creating list item...")
    item_payload = {'__metadata': {'type': 'SP.Data.TasksListItem'}, 'Title': 'New Task'}
    data = request.execute_query_direct(request_url=request_url, data=item_payload)
    print("Task {0} has been successfully [created]".format(data['d']['Title']))
    return data['d']
コード例 #5
0
    def handle(self):
        email, password = self.email, self.password
        authentication_context = AuthenticationContext(settings.SHAREPOINT_URL)
        authentication_context.acquire_token_for_user(email, password)

        if not authentication_context.get_last_error():
            request = ClientRequest(authentication_context)
            os.makedirs(settings.BIOS_ROOT, exist_ok=True)
            for bio in self._get_bios_list(
                authentication_context, settings.BIOS_URL
            ):
                if not 'template' in bio.lower():
                    options = RequestOptions(
                        '{0}mexico/Shared Documents/Resumes/{1}'.format(
                            settings.SHAREPOINT_URL, bio
                        )
                    )
                    options.set_header('Accept', 'application/json')
                    options.set_header('Content-Type', 'application/json')
                    data = request.execute_query_direct(options)
                    docx = open('{0}/{1}'.format(
                        settings.BIOS_ROOT,
                        bio.replace(
                            "a%C3%A1", "á"
                        ).replace(
                            "e%CC%81", "é"
                        ).replace(
                            "i%C3%AD", "í"
                        ).replace(
                            "o%C3%B3", "ó"
                        ).replace(
                            "u%C3%BA", "ú"
                        ).replace(
                            "%C3%91", "Ñ"
                        ).replace(
                            "A%C3%81", "Á"
                        ).replace(
                            "E%C3%89", "É"
                        ).replace(
                            "I%C3%8D", "Í"
                        ).replace(
                            "O%C3%93", "Ó"
                        ).replace(
                            "U%C3%9A", "Ú"
                        )
                    ), "wb")
                    docx.write(data.content)
                    docx.close()
        else:
            self.error = authentication_context.get_last_error()
コード例 #6
0
    def _get_bios_list(self, authentication_context, url, first_last=None):
        request = ClientRequest(authentication_context)
        options = RequestOptions(url)
        options.set_header('Accept', 'application/json')
        options.set_header('Content-Type', 'application/json')
        data = request.execute_query_direct(options)
        resumes = set()
        last = ''
        lasts = []

        for count, part in enumerate(list(str(data.content).split('.docx'))[:-1]):
            if 'bio' in part.lower():
                try:
                    last = part.rsplit('file=')[1] + '.docx'
                    lasts.append(last)
                    last = (
                        last
                    ).replace(
                        '%20', ' '
                    ).replace(
                        '%C3%B1', 'ñ'
                    )
                    resumes.add(last)
                except:
                    pass

        if self.global_last:
            try:
                while self.global_last == lasts.pop():
                    pass
            except:
                return set()
            last = self.global_last = lasts.pop()
        else:
            self.global_last = lasts.pop()

        url = '{0}{1}{2}{3}'.format(
            settings.SHAREPOINT_URL,
            settings.SHAREPOINT_PREFIX,
            self.global_last,
            settings.SHAREPOINT_SUFFIX
        )

        return resumes.union(
            self._get_bios_list(authentication_context, url, last)
        )
コード例 #7
0
from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.runtime.client_request import ClientRequest
from office365.runtime.utilities.request_options import RequestOptions
from settings import settings
import json

if __name__ == '__main__':
    context_auth = AuthenticationContext(url=settings['url'])
    if context_auth.acquire_token_for_user(username=settings['username'],
                                           password=settings['password']):
        """Read Web client object"""
        request = ClientRequest(settings['url'], context_auth)
        options = RequestOptions("{0}/_api/web/".format(settings['url']))
        options.set_header('Accept', 'application/json')
        options.set_header('Content-Type', 'application/json')
        data = request.execute_query_direct(options)
        s = json.loads(data.content)
        web_title = s['Title']
        print "Web title: " + web_title

    else:
        print context_auth.get_last_error()