0.0.18 • Published 4 years ago

caju-connector v0.0.18

Weekly downloads
8
License
MIT
Repository
github
Last release
4 years ago

CAJU Javascript Library

A JavaScript library to interface with CAJU API, it works in Node.js

Description

This library covers all your needs for Caju integration, providing:

API

To know more about all endpoints check the API Reference.

How to use

First, install it:

yarn add caju-connector

Or using npm:

npm install caju-connector

CAJU JavaScript library can be used in two ways:

Node.js

Using import:

import cajuConnector from 'caju-connector'

it also works with require:

const cajuConnector = require('caju-connector')

Client API

All of CAJU REST API endpoints are covered in the client object. Every function call issued to client will return a Promise which represents and manages the result's lifecycle.

Using connect

When you call connect, a Promise which resolves to a client or an error will be thrown. If an authentication error happens, you can catch the error with the Promise interface:

import cajuConnector from 'caju-connector'

cajuConnector.client.connect()
  .then(client => client.settlement.all())
  .then(console.log)
  .catch(console.error)

As the entire library is based on promises, you can also use ES6 generators to make code more procedural:

import cajuConnector from 'caju-connector'

let client

try {
  client = yield cajuConnector.client.connect()
} catch (err) {
  console.log(err)
}

try {
  const settlements = yield client.settlement.all()
  console.log(settlements)
} catch (err) {
  console.log(err)
}

The downside of this approach is that you need to handle errors using try/catch.

Parameters

If your method doesn't require any parameter, you can just call it without them:

client.settlement
  .all() // https://url/settlements
  .then((response) => console.log(response.data()))
  .catch((response) => console.error(response.data()))

Every parameter that doesn't match a pattern {parameter-name} in path will be sent as part of the query string:

client.settlement.all({ amount: 10 }) // https://url/settlements?amount=10

When a method requires a parameters and the method is called without it, Mappersmith will raise an error:

client.settlement.byId(/* missing id */)
// throw '[Mappersmith] required parameter missing (id), "/settlements/{id}" cannot be resolved'

Body

To send values in the request body (usually for POST, PUT or PATCH methods) you will use the special parameter body:

client.settlement.create({
  body: payload
  }
})

Response object

Mappersmith will provide an instance of its own Response object to the promises. This object has the methods:

  • request() - Returns the original Request
  • status() - Returns the status number
  • success() - Returns true for status greater than 200 and lower than 400
  • headers() - Returns an object with all headers, keys in lower case
  • header(name) - Returns the value of the header
  • data() - Returns the response data, if Content-Type is application/json it parses the response and returns an object

Building

To build the library, use yarn build:commonjs.

  • Node.js build is produced inside the dist directory.

Testing

To run the library tests, use yarn test:all.

License

The MIT License (MIT)
Copyright (c) 2018 Pagar.me Pagamentos S/A
0.0.18

4 years ago

0.0.17

4 years ago

0.0.16

4 years ago

0.0.15

5 years ago

0.0.14

5 years ago

0.0.13

5 years ago

0.0.12

6 years ago

0.0.11

6 years ago

0.0.10

6 years ago

0.0.9

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago