Have ideas to improve npm?Join in the discussion! »

    inkworks

    0.0.17 • 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.
     

    Install

    npm i inkworks

    DownloadsWeekly Downloads

    16

    Version

    0.0.17

    License

    MIT

    Unpacked Size

    29.3 kB

    Total Files

    18

    Last publish

    Collaborators

    • avatar