inkworks

0.0.22 • Public • Published

Ink.Works Node.js Library

The Ink.Works Node library provides convenient access to the Ink.Works API from applications written in server-side JavaScript.

Please keep in mind that this package is for use with server-side Node that uses Ink.Works API keys.

Installation

npm i inkworks -s

or

yarn add inkworks

Example Usage

The package needs to be configured with your API key which is can be generated in your Ink.Works (Take2) Profile. Require it with the key's value:

const InkWorks = require('inkworks');
const inkworks = new InkWorks('api-key...');

const customer = await inkworks.customers.create({
  email: 'customer@example.com',
});

Or using ES modules, this looks more like:

import Inkworks from 'inkworks';
const inkworks = new InkWorks('api-key...');
//..

List a resource

const customers = await inkworks.customers.list({
  where: { fuzzyQuery: 'Joe' },
  order: 'reverse:createdAt'
  limit: 10
});

/*
  [{
    id: 1234,
    name: Joe Smith
  }, {
    id: 1345,
    name: Joe Wooten
  },
  ...]
*/

Get one resource

const customer = await inkworks.customers.retrieve(1234);

/*
  {
    id: 1234,
    name: Joe Smith,
    email: joe@example.com
  }
*/

Create a resource

const newCustomer = await inkworks.customers.create({
  name: 'Joe Warren',
  email: 'joew@example.com'
});

/*
  {
    id: 1346,
    name: 'Joe Warren',
    email: 'joew@example.com'
    ...
  }
*/

Update a resource

const updatedCustomer = await inkworks.customers.update(1234, {
  name: 'Joe P. Smith'
});

/*
  {
    id: 1234,
    name: 'Joe P. Smith'
    email: 'joe@example.com'
  }
*/

Delete a resource

NOTE: Deleting returns the fields of the deleted resource

const deletedCustomer = await inkworks.customers.delete(1234);


/*
  // Deleted Record details
  {
    id: 1234,
    name: 'Joe P. Smith'
    email: 'joe@example.com'
  }
*/

Advanced Usage

The Ink.Works API is a GraphQL based API, therefore, the Ink.Works SDK allows for custom queries against the API. If you'd prefer to request resources with raw GraphQL, you may. Observe the following example:

import InkWorks from 'inkworks';

const inkworks = new InkWorks('api-key...');

const query = `
  query ($id: Int) {
    order(id: $id) {
      id
      invoiceNumber
      
      customer {
        id
        name
        email
        lifeTimeValue
        orderHistory
      }
    }
  }
`;

const variables = {
  customer: { id: 1234 }
};

const { data, errors } = await inkworks.request(query, variables);

// { data } and { errors } will contain your graph response.

Package Sidebar

Install

npm i inkworks

Weekly Downloads

0

Version

0.0.22

License

MIT

Unpacked Size

31 kB

Total Files

20

Last publish

Collaborators

  • tbarho