Node.js Cheddar API wrapper
This module will simplify the process of integrating Cheddar into your existing node.js apps.
Table of Contents
Installation
npm install cheddar
Also install the peer dependencies:
npm install request
Basic usage
; const cheddar = username: "email@example.com" password: "passwordExample" productCode: "PRODUCT_CODE"; cheddar ; // When inside an async function, you can simply await any Cheddar functionconst plans = await cheddar;
Or using ES5:
var Cheddar = ; var cheddar = username: "email@example.com" password: "passwordExample" productCode: "PRODUCT_CODE"; cheddar ;
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:
"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.
Credits
Original work was done by Kevin Smith.