Giter Site home page Giter Site logo

node-cheddar-api's Introduction

Swydo is no longer using cheddar and will no longer maintain this package. If you'd like to adopt this package please let us know!

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

import Cheddar from 'cheddar';

const cheddar = new Cheddar({
  username: "[email protected]",
  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:

var Cheddar = require("cheddar");

var cheddar = new Cheddar({
  username: "[email protected]",
  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:

{
  "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.

node-cheddar-api's People

Contributors

jamiter avatar quintstoffers avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.