Wrapper for the Cheddar recurring billing system APIs
npm install cheddar
Table of Contents
- Installation
- Basic usage
- Implemented methods
- Using a proxy
- Running tests
- Credits
```
npm install cheddar
Also install the peer dependencies:
``
npm install request
javascript
import Cheddar from 'cheddar';const cheddar = new Cheddar({
username: "email@example.com",
password: "passwordExample",
productCode: "PRODUCT_CODE",
});
cheddar.getPlans()
.then(plans => console.log(plans))
.catch(err => console.error(err));
// When inside an async function, you can simply await any Cheddar function
const plans = await cheddar.getPlans();
`Or using ES5:
`javascript
var Cheddar = require("cheddar");var cheddar = new Cheddar({
username: "email@example.com",
password: "passwordExample",
productCode: "PRODUCT_CODE",
});
cheddar.getPlans()
.then(function (plans) { console.log(plans); })
.catch(function (err) { console.error(err); });
`Implemented methods
*
getPlans()
* getPlan(planCode)
* getCustomers([query])
* getCustomer(customerCode)
* searchCustomers([query])
* createCustomer(customerData)
* editCustomerAndSubscription(customerData)
* editCustomer(customerCode, customerData)
* editSubscription(customerCode, customerData)
* deleteCustomer(customerCode)
* cancelSubscription(customerCode)
* addItem(customerCode, itemCode, [amount])
* removeItem(customerCode, itemCode, [amount])
* setItemQuantity(customerCode, itemCode, amount)
* addCustomCharge(customerCode, chargeCode, quantity, amount, description)
* deleteCustomCharge(customerCode, chargeId)
* resendInvoiceEmail(idOrNumber)
* oneTimeInvoice(customerCode, invoiceData)
* getPromotions([query])
* getPromotion(promotionCode)All methods return a promise with the requested data in JSON format.
Using a proxy
You might want to set up a proxy to communicate with Cheddar. Cheddar blocks most of the Heroku servers (a range of AWS IPs):
> Recently, a large block of IPs on the Heroku platform were listed by DenyHosts due to a spike in SSH brute force attacks coming from the Heroku platform. In short, you need to be coming from an IP that isn't listed.
A proxy url is easily set with the
CHEDDAR_PROXY_URL environment variable:`
CHEDDAR_PROXY_URL=https://example.com:1234 node your-server.js
`Running tests
First add a config file (config.json) with all your Cheddar credentials:`javascript
{
"username": "EMAIL",
"password": "PASSWORD",
// User either productCode OR productId
"productCode": "PRODUCTCODE",
"productId": "PRODUCTID",
"planCode": "PLANCODE",
"itemCode": "ITEMCODE",
"promoCode": "PROMOCODE"
}
`Now you can install all dependencies and run the tests:
`
npm install
npm test
``> WARNING: Only run the tests on a development account to prevent any side effects in production
> NOTE: Not all API calls have been fully tested yet.