CadU Javascript Library
A JavaScript library to interface with CadU API, it works in Node.js and Browser (in development).
Description
This library covers all your needs for integrating with CadU, providing:
How to use
First, install it:
yarn add cadu-js
Or using npm:
npm install cadu-js
CadU JavaScript library can be used in two ways:
Node.js
Import like usual:
import cadujs from 'cadu-js'
also works using require
:
const cadujs = require('cadu-js')
Browser (CommonJS) [In Development]
Import the browser build:
import cadujs from 'cadu-js/browser'
also works using require
:
const cadujs = require('cadu-js/browser')
Client API
All of CadU 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 returned. If an authentication error happens, you can catch
the error with the Promise
interface:
import cadujs from 'cadu-js'
cadujs.client.connect({
secret: '1234',
clientApplicationKey: '1234-1234-1234',
environment: 'sandbox',
userIdentifier: 'pagarme@pagar.me',
})
.then(client => client.Members.all())
.then(console.log)
.catch(console.error)
As the entire library is based on promises, you can also use ES6 generators
with every call to make code more procedural:
import cadujs from 'cadu-js'
let client
try {
client = yield cadujs.client.connect({
secret: '1234',
clientApplicationKey: '1234-1234-1234',
environment: 'sandbox',
userIdentifier: 'pagarme@pagar.me',
})
} catch (err) {
console.log(err)
}
try {
const members = yield client.Members.all()
console.log(members)
} 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.Members
.all()
.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.Members.all({ legalName: 'Name' })
When a method requires a parameters and the method is called without it, Mappersmith will raise an error:
client.Member.byId()
Body
To send values in the request body (usually for POST, PUT or PATCH methods) you will use the special parameter body
:
client.Members.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, if Content-Type
is application/json
it parses the response and returns an object
Building
To build the library, use yarn build:all
.
- Node.js build is produced inside the
dist
directory. - Browser build is produced inside the
browser
directory.
Testing
To run the library tests, use yarn test:all
.
License
The MIT License (MIT)
Copyright (c) 2017 Pagar.me Pagamentos S/A