From 9b1cdfdf73c91dbe6ada6f43ceb8e8c824928b75 Mon Sep 17 00:00:00 2001 From: Pedro de Oliveira Guedes Date: Fri, 14 Jan 2022 08:16:57 -0300 Subject: [PATCH] Creating the requests methods. --- api/replay/cli.py | 91 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/api/replay/cli.py b/api/replay/cli.py index e69de29..48c6f10 100644 --- a/api/replay/cli.py +++ b/api/replay/cli.py @@ -0,0 +1,91 @@ +import json +import os +import requests + +class Replay: + """ + ## Replay + --- + Esta classe é utilizada para fazer manipulações com o Replay instalado na máquina. Ela concede acesso às diferentes funcionalidades que o mesmo apresenta na interface do Console, sem que o programador precise realizar WebScraping para acessá-lo. + + Permite por exemplo a extração de configurações definidas para certos repositórios, registro de Logs, manipulação de banco de dados (SQLite), entre várias outras coisas. + """ + + ep: str = "" + + def __init__ (self): + self.ep = "https://localhost:8443" + + def __request_get__(self, data: str): + + """ + ## HTTP GET + --- + Este método é responsável por realizar requisições HTTP do tipo GET. + + Ele retorna o corpo de resposta da requisição, ou uma mensagem de erro, que indica qual foi a irregularidade ocorrida ao chamar a API. + """ + + url = self.ep + data + print("Calling: " + url) + + apikey = os.environ.get('REPLAY_APIKEY') + headers = {"X-API-KEY": apikey} + res = requests.get(url, headers=headers, verify=False) + + if res.status_code >= 400: + raise Exception(f"HTTP ERROR: {str(res.status_code)} - {res.text}") + if res.headers.get("Content-Type") != None and res.headers.get("Content-Type").find("json") != -1: + return json.loads(res.text) + else: + return res.text + + def __request_json_post__(self, path: str, object: dict): + + """ + ## HTTP JSON POST + --- + Este método é responsável por realizar requisições HTTP do tipo POST para objetos JSON. + + Ele retorna o corpo de resposta da requisição, ou uma mensagem de erro, que indica qual foi a irregularidade ocorrida ao chamar a API. + """ + + url = self.ep + path + print("Calling: " + url) + + apikey = os.environ.get('REPLAY_APIKEY') + headers = {"X-API-KEY": apikey} + res = requests.post(url, json = object, headers = headers, verify = False) + + if res.status_code >= 400: + raise Exception(f"HTTP ERROR: {str(res.status_code)} - {res.text}") + if res.headers.get("Content-Type") != None and res.headers.get("Content-Type").find("json") != -1: + return json.loads(res.text) + else: + return res.text + + def __request_raw_post__(self, path: str, data: str): + + """ + ## HTTP RAW POST + --- + Este método é responsável por realizar requisições HTTP do tipo POST para objetos RAW. + + Ele retorna o corpo de resposta da requisição, ou uma mensagem de erro, que indica qual foi a irregularidade ocorrida ao chamar a API. + """ + + url = self.ep + path + print("Calling: " + url) + + apikey = os.environ.get('REPLAY_APIKEY') + headers = {"X-API-KEY": apikey} + res = requests.post(url, data = data, headers = headers, verify = False) + + if res.status_code >= 400: + raise Exception(f"HTTP ERROR: {str(res.status_code)} - {res.text}") + if res.headers.get("Content-Type") != None and res.headers.get("Content-Type").find("json") != -1: + return json.loads(res.text) + else: + return res.text + + \ No newline at end of file