Wrapper não oficial para conexão com a API do sistema IXC Provedor
Project description
ixcpy 
Esta biblioteca não faz parte das bibliotecas oficiais do IXC Provedor.
O desenvolvimento é feito de forma independente e utiliza apenas uma "interface" de conexão com as funcionalidades providas pela API oficial do IXC.
Você poderá encontrar orientações de como parametrizar as requisições na WIKI oficial, disponilizada pela própria IXC Soft.
Disponível nos repositórios PyPI
Adicione ao seu projeto utilizando o comando pip install.
pip install ixcpy
Configuração básica
Adicione as variáveis de ambiente a um .env na raiz do seu projeto:
IXC_ACCESS_TOKEN=conteúdo-do-token-gerado-dentro-do-ixc-provedor
IXC_SERVER_DOMAIN=www.domínio-do-seu-servidor-ixc-provedor.com.br
[!NOTE]
Não sabe como gerar um token? Basta consultar este tutorial.
Do jeito mais dinâmico 😎
Realizando uma consulta através da classe Connection:
from ixcpy import Connection
connection = Connection(table='cliente')
# O operador "%" fará a busca em todos os clientes que possuem "João" no campo "razao".
connection.where(args='razao % "João"')
# Para encontrar um registro pelo nome que seja exatamente igual ao que você busca,
# substitua o operador "%" pelo "=".
connection.where(args='razao = "Nome Completo do João"')
# Para realizar a busca em qualquer outro campo, basta alterar a query,
# como no exemplo abaixo, tendo em vista que o campo deve corresponder
# a uma coluna da tabela que você está buscando, no IXC Provedor.
# Nesse caso, o campo "cnpj_cpf", na tabela "cliente"
connection.where(args='cnpj_cpf = "123.456.789-10"')
Depois de invocar o método
where()uma ou mais vezes, basta invocar o métodomany()na sua instância deConnection
Então você irá obter a instância de um objeto do tipoResponse, de onde poderá acessar a quantidade de registros retornados, através do métodototal().
E uma lista dos objetos, a partir do métodorecords(), tudo através da instância deResponse.
Do jeito mais simples 🎯
Supondo que você possua o ID de um determinado registro e queira buscá-lo no IXC Provedor, seria contraproducente encadear "chamadas where".
Nesse caso, basta invocar o método one() em uma instância de Connection, passando o ID como parâmetro, como no exemplo a seguir:
from ixcpy import Connection
connection = Connection(table='cliente')
# Se o IXC encontrar um registro (na tabela "cliente" nesse caso), o método "one" retornará um 'dict'
# onde as chaves serão do tipo 'str' e o valor de cada campo podendo ser 'str', 'int' ou 'bool',
# dependendo do formato retornado pelo IXC Provedor. Se nenhum registro for encontrado,
# o método "one" retornará um 'None'
cliente = connection.one(record_id=12345)
Dica!
Uma opção prática é criar uma classe personalizada que herde de Connection, assim será possível encapsular as buscas
detro da subclasse correspondente à tabela que você deseja manipular, como no exemplo a seguir:
from ixcpy import Connection
class Cliente(Connection):
def __init__(self):
super().__init__('cliente')
def lista_por_data_cadastro(self, data_cadastro: str, page: int = 1) -> list:
self.where(args=f'data_cadastro >= {data_cadastro}')
resposta = self.many(page=page)
return resposta.records()
Clone & Setup
git clone https://github.com/SousaFelipe/ixcpy.git
cd ixcpy
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
Contribuições
Contribuições são sempre bem-vindas!
Se você conhece uma maneira melhor de fazer algo, por favor, me avise!
Caso contrário, é sempre melhor fazer um PR na branch main.
At.te,
Felipe S. Carmo.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ixcpy-2.0.0.tar.gz.
File metadata
- Download URL: ixcpy-2.0.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9494856640235952fc1ee2f22a08ad951978c347d839cd2cb12c4c48a847869d
|
|
| MD5 |
087480dea359a3a3432315bbd7392d7e
|
|
| BLAKE2b-256 |
16b379e1506c844c6fc4feb6b8e801238429e4ef99718f934c649abcebb4e624
|