Skip to content

Commit

Permalink
feat: lançar versão 1.0.0 do pacote para PHP (#19)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexandreBellas authored Dec 27, 2023
2 parents d4589f6 + f4824b3 commit c46df63
Show file tree
Hide file tree
Showing 599 changed files with 17,239 additions and 119 deletions.
7 changes: 0 additions & 7 deletions .env.example

This file was deleted.

30 changes: 30 additions & 0 deletions .github/workflows/calculate-coverage.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Calculate test coverage

on:
push:
branches:
- "main"

jobs:
calculate-coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 20

- name: Install dependencies
working-directory: ./typescript
run: npm install

- name: Build project
working-directory: ./typescript
run: npm run build

- name: Execute tests
working-directory: ./typescript
run: npm run test:coverage

- name: Send to coveralls
uses: coverallsapp/github-action@v2
23 changes: 22 additions & 1 deletion .github/workflows/on-commit-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: On commit => execute test workflow
on: push

jobs:
unit-feature-tests:
js-ts-unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
Expand All @@ -12,10 +12,31 @@ jobs:
node-version: 20

- name: Install dependencies
working-directory: ./typescript
run: npm install

- name: Build project
working-directory: ./typescript
run: npm run build

- name: Execute tests
working-directory: ./typescript
run: npm run test

php-unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: "8.2"

- name: Install dependencies
run: composer update

- name: Dump autoload classes
run: composer dump-autoload -o

- name: Execute tests
run: vendor/phpunit/phpunit/phpunit -c php/phpunit.xml
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,6 @@ dist
# TernJS port file
.tern-port

# NPM package lock file
package-lock.json

# TS build output
lib/

Expand All @@ -124,3 +121,6 @@ lib/
# Ignore all local history of files
.history
.ionide

# PHP
vendor/
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@
"@shared": "Shared",
"exceptions": "Error"
},
"material-icon-theme.files.associations": {
"*.spec.php": "test-ts"
},
"cSpell.words": [
"agrupadores",
"aliquota",
"Amazônia",
"autoload",
"borderô",
"Borderos",
"borderôs",
Expand All @@ -19,6 +23,7 @@
"Customizados",
"Eletrônicas",
"Frotista",
"guzzlehttp",
"ICMS",
"ICMSST",
"ICRT",
Expand Down
117 changes: 9 additions & 108 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,129 +1,30 @@
# Bling ERP API

[![](https://img.shields.io/npm/v/bling-erp-api.svg)](https://www.npmjs.com/package/bling-erp-api)
[![install size](https://packagephobia.com/badge?p=bling-erp-api)](https://packagephobia.com/result?p=bling-erp-api)
[![code coverage](https://coveralls.io/repos/github/AlexandreBellas/bling-erp-api/badge.svg?branch=main)](https://coveralls.io/github/AlexandreBellas/bling-erp-api?branch=main)

Pacote de integração com a [API v3 do ERP Bling](https://developer.bling.com.br).
O mais completo existente (e se não é, será).

Disponível para:

- [x] JavaScript
- [x] TypeScript
- [ ] PHP (em breve)
- [x] JavaScript ([veja a documentação](https://github.com/AlexandreBellas/bling-erp-api/tree/develop/typescript/README.md))
- [x] TypeScript ([veja a documentação](https://github.com/AlexandreBellas/bling-erp-api/tree/develop/typescript/README.md))
- [x] PHP ([veja a documentação](https://github.com/AlexandreBellas/bling-erp-api/tree/develop/php/README.md))
- [ ] C# (em breve)

Atualizado com a versão `v291` da API ([veja o registro de alterações](https://developer.bling.com.br/changelogs#2024-01-31)).

**Atenção**: a versão 5.0.0+ do `bling-erp-api` utiliza a API v3 do Bling. Caso
deseje utilizar a API v2 do Bling,
[utilize a versão 4.0.0](https://github.com/AlexandreBellas/bling-erp-api/tree/v4.0.0).

## Instalação

Para instalar, execute o comando:
Para instalar, execute o comando de acordo com a linguagem de programação
desejada.

### JavaScript / TypeScript

```bash
npm i bling-erp-api
```

## Importação do módulo

### CommonJS

```js
const Bling = require('bling-erp-api')
```

### ES6

```ts
import Bling from 'bling-erp-api'
```

## Criação de uma nova conexão

Para criar uma conexão ao serviço do Bling, basta instanciar o objeto com a [API key](https://developer.bling.com.br/autenticacao) em seu construtor.

```js
const apiKey = 'sua_api_key'
const blingConnection = new Bling(apiKey)
```

Vale destacar que o fluxo de criação e autorização do aplicativo **não é feito
pela biblioteca**. Ou seja, a biblioteca somente recebe o `access_token` gerado
a partir do _endpoint_ `/token`. [Veja a referência](https://developer.bling.com.br/aplicativos#tokens-de-acesso).

Para entender na prática como a autenticação citada acima funciona, [veja o
projeto de demonstração](https://github.com/AlexandreBellas/bling-erp-api/tree/main/demo).

## Entidades disponíveis

Todas as entidades do Bling atualmente são permitidas para interação. São elas:

- [x] Borderos (`.borderos`)
- [x] Campos customizados (`.camposCustomizados`)
- [x] Categorias - Lojas (`.categoriasLojas`)
- [x] Categorias - Produtos (`.categoriasProdutos`)
- [x] Categorias - Receitas e Despesas (`.categoriasReceitasDespesas`)
- [x] Contas a Pagar (`.contasPagar`)
- [x] Contas a Receber (`.contasReceber`)
- [x] Contas Contábeis (`.contasContabeis`)
- [x] Contatos (`.contatos`)
- [x] Contatos - Tipos (`.contatosTipos`)
- [x] Contratos (`.contratos`)
- [x] Depósitos (`.depositos`)
- [x] Empresas (`.empresas`)
- [x] Estoques (`.estoques`)
- [x] Formas de pagamento (`.formasDePagamento`)
- [x] Homologação (`.homologacao`)
- [x] Logísticas (`.logisticas`)
- [x] Logísticas - Etiquetas (`.logisticasEtiquetas`)
- [x] Logísticas - Objetos (`.logisticasObjetos`)
- [x] Logísticas - Remessas (`.logisticasRemessas`)
- [x] Logísticas - Serviços (`.logisticasServicos`)
- [x] Naturezas de Operações (`.naturezasDeOperacoes`)
- [x] Notas Fiscais de Consumidor Eletrônicas (`.nfces`)
- [x] Notas Fiscais de Serviço Eletrônicas (`.nfses`)
- [x] Notas Fiscais Eletrônicas (`.nfes`)
- [x] Notificações (`.notificacoes`)
- [x] Pedidos - Compras (`.pedidosCompras`)
- [x] Pedidos - Vendas (`.pedidosVendas`)
- [x] Produtos (`.produtos`)
- [x] Produtos - Estruturas (`.produtosEstruturas`)
- [x] Produtos - Fornecedores (`.produtosFornecedores`)
- [x] Produtos - Lojas (`.produtosLojas`)
- [x] Produtos - Variações (`.produtosVariacoes`)
- [x] Situações (`.situacoes`)
- [x] Situações - Módulos (`.situacoesModulos`)
- [x] Situações - Transições (`.situacoesTransicoes`)
- [x] Usuários (`.usuarios`)
- [x] Vendedores (`.vendedores`)

## Exemplo de uso

Para listar seus produtos, basta executar:

```js
// Também disponível como:
// import Bling from 'bling-erp-api'
const Bling = require('bling-erp-api')
const apiKey = 'sua_api_key'

const blingConnection = new Bling(apiKey)

const products = await blingConnection.produtos.get()

console.log(products)
```

## Executando os testes do projeto

Faça o clone do projeto, instale as dependências e execute:
### PHP

```bash
npm run test
composer require alebatistella/bling-erp-api
```

## Recursos
Expand Down
30 changes: 30 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"name": "alebatistella/bling-erp-api",
"description": "Pacote de integração com a API do Bling ERP",
"type": "library",
"version": "1.0.0",
"license": "MIT",
"autoload": {
"psr-4": {
"AleBatistella\\BlingErpApi\\": "./php/src/",
"AleBatistella\\BlingErpApi\\Entities\\Shared\\": "./php/src/Entities/@shared/"
},
"files": [
"./php/src/Helpers/functions.php"
]
},
"authors": [
{
"name": "Alexandre Batistella Bellas",
"email": "[email protected]"
}
],
"require": {
"guzzlehttp/guzzle": "^7.8"
},
"require-dev": {
"laravel/laravel": "^10.2",
"phpunit/phpunit": "^10.5",
"fakerphp/faker": "^1.23"
}
}
Loading

0 comments on commit c46df63

Please sign in to comment.