Skip to content

Tive-technology/cheddar-api

 
 

Repository files navigation

JavaScript Cheddar API wrapper

This module will simplify the process of integrating Cheddar into your existing JavaScript apps.

Table of Contents

Installation

npm i @tivetechnology/cheddar-api

Basic usage

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();

Implemented methods

  • getPlans()
  • getPlan(planCode)
  • getCustomers(getCustomersRequest)
  • getCustomer(customerCode)
  • createCustomer(createCustomerRequest)
  • editCustomerAndSubscription(editCustomerSubscriptionRequest)
  • editCustomer(editCustomerRequest)
  • editSubscription(editSubscriptionRequest)
  • deleteCustomer(customerCode)
  • cancelSubscription(customerCode)
  • addItem(itemQuantityRequest)
  • removeItem(itemQuantityRequest)
  • setItemQuantity(setItemQuantityRequest)
  • addCustomCharge(addCustomChargeRequest)
  • deleteCustomCharge(deleteCustomChargeRequest)
  • createOneTimeInvoice(createOneTimeInvoiceRequest)
  • runOutstandingInvoice(outstandingInvoiceRequest)
  • issueRefund(issueRefundRequest)
  • issueVoid(issueVoidRequest)
  • issueVoidOrRefund(issueVoidRequest)
  • resendInvoiceEmail(issueVoidRequest)
  • getPromotions()
  • getPromotion(promotionCode)

All methods return a promise with the requested data in JSON format.

Running tests

First add a config file (.env) with all your Cheddar credentials:

TEST_USERNAME=
TEST_PASSWORD=
TEST_PRODUCT_CODE=
TEST_PLAN_CODE=
TEST_ITEM_CODE=
TEST_PROMO_CODE=

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

Credits

Original work was done by Kevin Smith. Ported to typescript by Victor Uvarov.

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%