inkworks
v0.0.22
Published
Connect to the Ink.Works API via Node.js
Downloads
32
Maintainers
Readme
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: '[email protected]',
});
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: [email protected]
}
*/
Create a resource
const newCustomer = await inkworks.customers.create({
name: 'Joe Warren',
email: '[email protected]'
});
/*
{
id: 1346,
name: 'Joe Warren',
email: '[email protected]'
...
}
*/
Update a resource
const updatedCustomer = await inkworks.customers.update(1234, {
name: 'Joe P. Smith'
});
/*
{
id: 1234,
name: 'Joe P. Smith'
email: '[email protected]'
}
*/
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: '[email protected]'
}
*/
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.