Starting the development process.
parent
9889c11eb7
commit
21f5227844
|
@ -0,0 +1,84 @@
|
|||
import json
|
||||
import os
|
||||
|
||||
import requests
|
||||
|
||||
class DataAPI:
|
||||
"""
|
||||
## Data API
|
||||
---
|
||||
Esta classe permite a execução de comandos básicos SQL para o banco de dados remoto do Replay.
|
||||
|
||||
Para que a classe funcione corretamente, é necessário que o usuário tenha acesso à chave da API do BD remoto. Devendo passá-la como parâmetro ao instanciar a classe DataAPI. Por exemplo:
|
||||
d_api = DataAPI ("ahsgcn21390-dsaf_dain2eq81288sad9")
|
||||
"""
|
||||
|
||||
ep: str = ""
|
||||
|
||||
def __init__ (self, api_key: str):
|
||||
self.ep = "https://dataapi.digitalcircle.com.br"
|
||||
self.api_key = api_key
|
||||
|
||||
def __request_json_post__ (self, 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 + "/"
|
||||
print("Calling: " + url)
|
||||
|
||||
headers = {"X-API-KEY": self.api_key}
|
||||
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 do (self, table: str, operation: str, id: str = "*", sql_attribute: str = "*", data: dict = {}):
|
||||
"""
|
||||
## DataAPI Do
|
||||
Este método é responsável pela execução dos comandos SQL no Banco de Dados remoto.
|
||||
|
||||
---
|
||||
#### Parâmetros:
|
||||
- table: Nome da tabela SQL em que se quer realizar a operação (OBRIGATÓRIO)
|
||||
- operation: Operação que se quer desenvolver. São elas: "R", "C", "D", "U" (OBRIGATÓRIO)
|
||||
- R: Retrieve (Busca informações da coluna da tabela)
|
||||
- C: Create (Cria uma nova tabela)
|
||||
- D: Delete (Deleta uma tabela ou as colunas de uma tabela)
|
||||
- U: Update (Atualiza as informações de uma tabela)
|
||||
|
||||
- sql_attribute: Nome do atributo (coluna) que se quer consultar ou alterar na tabela SQL
|
||||
- id: Identificador da instância (linha) da tabela que se quer realizar a operação
|
||||
- data: Dados que se quer inserir na tabela
|
||||
|
||||
---
|
||||
#### Retorna:
|
||||
-> O retorno do comando feito, qualquer que seja ele.
|
||||
"""
|
||||
|
||||
request_body = {
|
||||
"Col": table,
|
||||
"Op": operation,
|
||||
"Q": sql_attribute,
|
||||
"Id": id,
|
||||
"Data": data
|
||||
}
|
||||
|
||||
return self.__request_json_post__(request_body)
|
||||
|
||||
|
||||
|
||||
# func (c *Cli) Do(request *DataAPIRequest) (response *DataAPIResponse, err error) {
|
||||
# response = &DataAPIResponse{}
|
||||
# err = c.Httpcli.JsonPost("/", request, response)
|
||||
# return
|
||||
# }
|
Loading…
Reference in New Issue