def __tratarRespostaHTTP(self, respostaHTTP): if respostaHTTP.status_code < 200 or respostaHTTP.status_code > 300: retorno = Retorno( False, self, 'Erro de comunicação com a Iter. %s' % respostaHTTP.text, 'ErroComunicacaoIter', respostaHTTP.status_code) else: retorno = Retorno(True, self) dadosRetorno = respostaHTTP.json() if isinstance(dadosRetorno, list): if len(dadosRetorno) > 0: dadosRetorno = dadosRetorno[0] else: dadosRetorno = None if dadosRetorno: retorno.dados = dadosRetorno if 'token' in dadosRetorno: self.credencial_iter.set_token_iter(dadosRetorno['token']) retorno.credencial = self.credencial_iter else: # nao localizado retorno = Retorno(False, self, respostaHTTP.text, '', 404) self.registrar_retorno(retorno, 'Retorno da Iter.') return retorno
def __autenticarIter(self): self.headers_iter = None chave_iter_cliente = None chave_iter_servidor = config('CHAVE_ITER') token_iter = '' if (self.credencial_iter): chave_iter_cliente = self.credencial_iter.chave_iter_cli token_iter = self.credencial_iter.token_iter # Atribui as chaves, parcial do servidor e parcial do cliente para descriptografar/criptografar o token. self.credencial_iter.chave_iter_cli = chave_iter_cliente self.credencial_iter.chave_iter_serv = chave_iter_servidor self.credencial_iter.token_iter = token_iter if token_iter and len(token_iter) > 0: retorno = Retorno(True, self) retorno.credencial = self.credencial_iter else: arquivo_iter = open('.env_cred_iter', 'rb') cred_iter_cripto = arquivo_iter.read() if (cred_iter_cripto): # atribui usuario e senha criptografados para descriptografar com get_token_iter() self.credencial_iter.token_iter = cred_iter_cripto headers = { 'Authorization': 'Basic %s' % self.credencial_iter.get_token_iter() } r = requests.get("http://cnxs-api.itertelemetria.com/v1/sign_in", headers=headers) retorno = self.__tratarRespostaHTTP(r) self.retorno_autenticacao = retorno if self.retorno_autenticacao.estado.ok: # self.credencial = retorno.credencial token = self.credencial_iter.get_token_iter() self.headers_iter = { 'Authorization': 'Bearer %s' % token, 'Content-Type': 'application/json' }