Skip to content

pagarme/cadu-js

Repository files navigation

CadU Javascript Library

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



Description

This library covers all your needs for integrating with CadU, providing:

  • A clean Promise-based interface for all endpoints in CadU API
  • The library was create using mappersmith

How to use

First, install it:

yarn add cadu

Or using npm:

npm install cadu

CadU JavaScript library can be used in two ways:

Node.js

Import like usual:

import cadu from 'cadu'

also works using require:

const cadu = require('cadu')

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'

cadujs.connect({
  environment: 'sandbox',
  privateKey: certPriv,
  clientId: 'client_id',
  userAgent: 'user_agent',
})
  .then(client => client.Members.all())
  .then(console.log)
  .catch(console.error)

Parameters

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

client.Members
  .all() // https://cadu.api.com/members
  .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' }) // https://cadu.api.com/member?legalname=Name

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

client.Member.byId(/* missing memberKey */)
// throw '[Mappersmith] required parameter missing (memberKey), "/members/{memberKey}" 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.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 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 for Node.js the library, use yarn build:commonjs.

Testing

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

License

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