caju-connector
v0.0.18
Published
A JavaScript library to interface with CAJU
Downloads
18
Readme
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:
- A clean Promise-based interface for all endpoints in CAJU API
- The library was create using (mappersmith)[https://github.com/mappersmith/]
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 Requeststatus()
- Returns the status numbersuccess()
- Returns true for status greater than 200 and lower than 400headers()
- Returns an object with all headers, keys in lower caseheader(name)
- Returns the value of the headerdata()
- Returns the response data, ifContent-Type
isapplication/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