New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

vindi-node-sdk

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vindi-node-sdk

Node.js SDK for vindi payment gateway

  • 1.0.6
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
285
decreased by-37.91%
Maintainers
1
Weekly downloads
 
Created
Source

Vindi Node.js SDK

API Docs

Instalação

npm install vindi-node-sdk

Configuração

Para iniciar a utilização do sdk, é necessário configurar a variável de ambiente abaixo:

API KEY
process.env.VINDI_API_KEY = 'YOUR_VINDI_API_KEY'

API URI

Por padrão, a URI base da api na versão atual (v1) já está configurada internamente https://app.vindi.com.br/api/v1.

Para alterar configure a seguinte variável de ambiente:

process.env.VINDI_API_URI = 'YOUR_VINDI_API_URI'

Os exemplos de configuração acima são apenas sugestão, você pode utilizar qualquer outro processo para configuração das variáveis, desde que os mesmos sejam disponibilizados para o ambiente.

Utilização


Vindi.customer.all().then(data => {
    console.log(JSON.stringify(data))
}).catch(error => {
    console.log(error)
})

// output:

{
   "items":[
      {
         "id":ID,
         "name":"NAME",
         "email":"EMAIL",
         "registry_code":"REGISTRY_CODE",
         "code":"CODE",
         "notes":"NOTES",
         "status":"active",
         "created_at":"2018-05-07T15:48:14.000-03:00",
         "updated_at":"2018-05-07T16:35:35.000-03:00",
         "metadata":{
         },
         "address":{
            "street":"STREET",
            "number":"NUMBER",
            "additional_details":"ADDITIONAL_DETAIL",
            "zipcode":"ZIPCODE",
            "neighborhood":"NEIGHBORHOOD",
            "city":"CITY",
            "state":"BA",
            "country":"BR"
         },
         "phones":[
         ]
      },
      ...
   ],
   "links":{
      "first":null,
      "last":null,
      "prev":null,
      "next":null
   },
   "perPage":"25",
   "total":"200",
   "rates":{
      "limit":"120",
      "remaining":"119",
      "reset":"1536760995"
   }
}

Filtros, Paginação e Ordenação

Os parâmetros aceitos para filtros e paginação, bem como as exigências sobre os formatos e codificação são descritos aqui

Este SDK foi desenvolvido de modo a atender o padrão atual da API Vindi.

Paginação e Ordenação

Cada recurso da API, possui atributos para busca/ordenação distintos, estes podem ser consultados na documentação de consultas GET dos mesmos.

A utilização de propriedades inválidas neste processo, fará com que a requisição retorne um erro (verifique o .catch abaixo).

const params = {
    per_page: 1,
    sort_by: 'name'
}

Vindi.plan.all(params).then(data => {
    console.log(JSON.stringify(data))
}).catch(error => {
    console.log(error)
})

Em caso de sucesso, o SDK formatará as respostas de modo que a saída siga sempre o padrão estrutural exibido na seção Utilização.

Filtros

Para utilização do filtros da API Vindi, é necessário compreender as seguintes regras:

  1. Os parâmetros de filtragem devem ser inseridos na chave query da querystring (URL).
  2. Os parâmetros devem ser codificados de acordo com o padrão URL Encoded
  3. Deve-se utilizar a simbologia de consulta aceita e descrita na documentação.

O SDK disponibiliza um recurso próprio para formatação e codificação dos parâmetros de filtragem.

const f = Vindi.filter

f.where('name:Mensal')

const params = {
    sort_by: 'name',
    query: f.get()
}

Vindi.plan.all(params).then(data => {
    console.log(JSON.stringify(data))
}).catch(error => {
    console.log(error)
})

Esta funcionalidade permite que você adicione vários argumentos sequencialmente no método where. Estes serão entendidos por padrão como AND

f.where(
    'name:Mensal',
    'interval_count>=2'
)

// Utilize este método para obter a consulta explícita.
console.log(f.get())

const params = {
    sort_by: 'name',
    query: f.get()
}

Caso necessite utilizar mais parâmetros de forma estratégica, utilize os métodos avançados, disponíveis no filtro.

f.where(
    f.and(
        f.or('name:Mensal', f.gte('interval_count', 2)),
        f.or('status=active', 'billing_trigger_day=2')
    )
)

Negação

f.where(
    f.not('status=inactive')
)
ATENÇÃO

O SDK NÃO está configurado de modo a prevenir o uso sequencial incorreto dos métodos de filtragem, deste modo é recomendável sempre depurar console.log(f.get()) a string de busca resultante para garantir que os resultados obtidos são realmente os desejados.

Métodos disponíveis no filtro:

f.eq(x, y)      // x=y
f.like(x, y)    // x:y
f.not(x)        // -x
f.lt(x, y)      // x<y
f.lte(x, y)     // x<=y
f.gt(x, y)      // x>y
f.gte(x, y)     // x>=y
f.and(...args)  // arg1 AND arg2 AND arg3 ....
f.and(...args)  // arg1 OR arg2 OR arg3 ....
f.get()         // x=1 AND y=2

Status dos recursos

[x] Disponível | [ ] Indisponível

RecursoStatus
Vindi.bill.all(params)[x]
Vindi.bill.create(data)[x]
Vindi.bill.retrieve(id)[x]
Vindi.bill.update(id, data)[x]
Vindi.bill.delete(id)[x]
Vindi.bill.approve(id)[x]
Vindi.bill.change(id)[x]
Vindi.bill.invoice(id)[x]
------
Vindi.billItem.retrieve(id)[x]
------
Vindi.charge.all(params)[x]
Vindi.charge.retrieve(id)[x]
Vindi.charge.update(id, data)[x]
Vindi.charge.delete(id)[x]
Vindi.charge.charge(id)[x]
Vindi.charge.fraudReview(id)[x]
Vindi.charge.refund(id)[x]
Vindi.charge.reissue(id)[x]
------
Vindi.customer.all(params)[x]
Vindi.customer.create(data)[x]
Vindi.customer.retrieve(id)[x]
Vindi.customer.update(id, data)[x]
Vindi.customer.delete(ud)[x]
Vindi.customer.unarchive(id)[x]
------
Vindi.discount.create()[x]
Vindi.discount.retrieve(id)[x]
Vindi.discount.delete(id)[x]
------
Vindi.importBatch.all(params)[ ]
Vindi.importBatch.upload(data)[ ]
Vindi.importBatch.retrieve(id)[ ]
------
Vindi.invoice.all(params)[x]
Vindi.invoice.create(data)[x]
Vindi.invoice.retrieve(id)[x]
Vindi.invoice.update(id)[x]
Vindi.invoice.delete(id)[x]
Vindi.invoice.retry(id)[x]
------
Vindi.issue.all(params)[x]
Vindi.issue.retrieve(id)[x]
Vindi.issue.update(id)[x]
------
Vindi.merchant.all(params)[x]
Vindi.merchant.current()[x]
Vindi.merchant.retrieve(id)[x]
------
Vindi.merchantUser.all(params)[ ]
Vindi.merchantUser.create(data)[ ]
Vindi.merchantUser.retrieve(id)[ ]
Vindi.merchantUser.update(id, data)[ ]
Vindi.merchantUser.delete(id)[ ]
Vindi.merchantUser.reactivate(id)[ ]
------
Vindi.message.all(params)[x]
Vindi.message.retrieve(id)[x]
Vindi.message.send(data)[x]
------
Vindi.movements.create(data)[ ]
------
Vindi.notification.all(params)[x]
Vindi.notification.create(data)[x]
Vindi.notification.retrieve(id)[x]
Vindi.notification.update(id, data)[x]
Vindi.notification.delete(id)[x]
Vindi.notification.getItems(id)[x]
Vindi.notification.addItem(id, data)[x]
Vindi.notification.removeItem(id, itemId)[x]
------
Vindi.paymentMethod.all(params)[x]
Vindi.paymentMethod.retrieve(id)[x]
------
Vindi.paymentProfile.all(params)[x]
Vindi.paymentProfile.create(data)[x]
Vindi.paymentProfile.retrieve(id)[x]
Vindi.paymentProfile.delete(id)[x]
Vindi.paymentProfile.verify(id)[x]
------
Vindi.period.all(params)[x]
Vindi.period.retrieve(id)[x]
Vindi.period.update(id, data)[x]
Vindi.period.bill(id)[x]
------
Vindi.plan.all(params)[x]
Vindi.plan.create(data)[x]
Vindi.plan.retrieve(id)[x]
Vindi.plan.update(id, data)[x]
------
Vindi.product.all(params)[x]
Vindi.product.create(data)[x]
Vindi.product.retrieve(id)[x]
Vindi.product.update(id, data)[x]
------
Vindi.productItem.create(data)[x]
Vindi.productItem.retrieve(id)[x]
Vindi.productItem.update(id, data)[x]
Vindi.productItem.delete(id)[x]
------
Vindi.public.profilePayment(data)[ ]
------
Vindi.roles.all(params)[ ]
------
Vindi.subscription.all(params)[x]
Vindi.subscription.create(data)[x]
Vindi.subscription.retrieve(id)[x]
Vindi.subscription.update(id, data)[x]
Vindi.subscription.delete(id)[x]
Vindi.subscription.renew(id)[x]
Vindi.subscription.reactivate(id)[x]
------
Vindi.transaction.all(params)[x]
Vindi.transaction.create(data)[x]
Vindi.transaction.retrieve(id)[x]
Vindi.transaction.update(id, data)[x]
------
Vindi.usage.create(data)[ ]
Vindi.usage.delete(id)[ ]
------
Vindi.user.current()[x]
------

Keywords

FAQs

Package last updated on 13 Sep 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc