コード例 #1
0
    def export_atml3(self):
        url = '{}download_export/'.format(self.instance_url())
        # ws_url = '{}/ws/trainings/'.format(self.ws_base)
        # if self.get('id', None):
        #     id = self['id']
        #     ws_url = '{}{}/'.format(ws_url, requests.utils.quote(str(id)))

        # print(ws_url)
        requestor = RequestHandler(token=self.api_token, api_base=self.api_base)
        start = datetime.datetime.utcnow()
        # ws = websocket.create_connection(ws_url)

        requestor.request('post', url, None)
        while True:
            time.sleep(0.5)
            self.refresh()
            current = self.get('lastExportProcessed', None)
            if current is None:
                continue
            dt = datetime.datetime.strptime(current, "%Y-%m-%dT%H:%M:%S.%fZ")
            if start < dt:
                break
        # ws.close()
        export = requestor.request('get', url, None, parse_json=False)
        return export
コード例 #2
0
def login_rincewind(user, password, api_base=None):
    if api_base is None:
        api_base = constants.API_BASE_RINCEWIND

    data = {
        'username': user,
        'password': password,
    }

    requestor = RequestHandler(api_base=api_base)

    try:
        response = requestor.request(
            url='/get-auth-token/',
            method='post',
            params=data,
        )
    except APIError as error:
        if hasattr(error, 'request') and error.request.status_code == 400:
            raise AuthenticationError(error.request) from None
        else:
            raise

    if constants.DEBUG:
        print('Received Rincewind authentication token {}.'.format(response['token']))
    constants.API_TOKEN_RINCEWIND = response['token']
コード例 #3
0
def login_myax(user, password, api_base=None):
    if api_base is None:
        api_base = constants.API_BASE

    data = {
        'email': user,
        'password': password,
    }

    requestor = RequestHandler(api_base=api_base)

    try:
        response = requestor.request(
            url='/{}/rest-auth/login/'.format(constants.API_VERSION),
            method='post',
            params=data,
        )
    except APIError as error:
        if hasattr(error, 'request') and error.request.status_code == 400:
            raise AuthenticationError(error.request) from None
        else:
            raise

    if constants.DEBUG:
        print('Received Myax authentication token {}.'.format(response['key']))
    constants.API_TOKEN = response['key']
コード例 #4
0
 def request(self, method, url, params=None, headers=None):
     params = params or self._params
     requestor = RequestHandler(
         token=self.api_token,
         api_base=self.api_base or constants.API_BASE,
     )
     response = requestor.request(method, url, params, headers)
     return create_object(response, self.api_token, _type=self.class_name)
コード例 #5
0
ファイル: base.py プロジェクト: niklaskks/axsemantics-python
 def request(self, method, url, params=None, headers=None):
     params = params or self._params
     requestor = RequestHandler(
         token=self.api_token,
         api_base=self.api_base or constants.API_BASE,
     )
     response = requestor.request(method, url, params, headers)
     return create_object(response, self.api_token, _type=self.class_name)
コード例 #6
0
 def _get_promoted(self, output=None):
     """
     this is an internal endpoint, not intended for customer use
     """
     requestor = RequestHandler(token=self.api_token, api_base=self.api_base)
     url = '{}get-promoted/'.format(self.instance_url())
     if output and hasattr(output, 'write') and callable(output.write):
         # print(self.instance_url())
         requestor.download_with_progressbar(url, label='Download Training')
     else:
         return requestor.request('get', url, None)
コード例 #7
0
ファイル: base.py プロジェクト: niklaskks/axsemantics-python
    def _update(self, params=None):
        if self.next_page > 1:
            params = {'page': self.next_page}

        requestor = RequestHandler(token=self.api_token)
        response = requestor.request('get', self.initial_url, params)

        self.current_index = 0
        self.length = response['count']
        self.current_list = response['results']

        if response['next']:
            self.next_page += 1
        else:
            self.next_page = None
コード例 #8
0
def login(user, password, api_base=None):
    data = {
        'email': user,
        'password': password,
    }
    requestor = RequestHandler()

    try:
        response = requestor.request(
            url='/{}/rest-auth/login/'.format(constants.API_VERSION),
            method='post',
            params=data,
        )
    except APIError as error:
        if hasattr(error, 'request') and error.request.status_code == 400:
            raise AuthenticationError(error.request) from None
        else:
            raise

    if constants.DEBUG:
        print('Received authentication token {}.'.format(response['key']))
    constants.API_TOKEN = response['key']
コード例 #9
0
    def _update(self, params=None):
        if self.next_page > 1:
            params = {'page': self.next_page}

        requestor = RequestHandler(token=self.api_token, api_base=self.api_base)
        response = requestor.request('get', self.initial_url, params)

        self.current_index = 0
        if isinstance(response, list):
            # no pagination
            self.lenght = len(response)
            self.current_list = response
            self.next_page = None
        else:
            # pagination
            self.length = response['count']
            self.current_list = response['results']

            if response['next']:
                self.next_page += 1
            else:
                self.next_page = None
コード例 #10
0
 def update_atml3(self, data):
     requestor = RequestHandler(token=self.api_token, api_base=self.api_base)
     url = '{}import/'.format(self.instance_url())
     return requestor.request('put', url, data)
コード例 #11
0
 def import_atml3(self, data, api_base=None, api_token=None):
     api_base = api_base or constants.API_BASE_RINCEWIND
     api_token = api_token or constants.API_TOKEN_RINCEWIND
     requestor = RequestHandler(token=api_token, api_base=api_base)
     url = '{}import/'.format(self.class_url())
     return requestor.request('post', url, data)
コード例 #12
0
 def promoted(self):
     requestor = RequestHandler(token=self.api_token, api_base=self.api_base)
     url = '{}get-promoted/'.format(self.instance_url())
     return requestor.request('get', url, None)