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
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']
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']
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)
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)
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
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']
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
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)
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)
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)