Credit: seanmcgary/iterable
npm install node-iterable-api
const client = require('node-iterable-api').create('<iterable api key>')
return client.lists.get()
.then(res => {
console.log(res.lists)
})
.catch(err => {
console.log(err)
})
All resources are taken from those available in the Iterable API documentation.
Note: Not all resources are implemented yet. You can see which ones in lib/api.js
.
Resources are addressable by calling:
// If param is a string, it'll append it to the resource path
// Otherwise you can just past an object that will either be
// passed to the body on a POST/PUT request, or as query
// string params in the case of a GET request
iterableInstance[<resource name>][<resource action>](param[, payload])
// e.g. to get lists:
iterableInstace.lists.get()
.then(data => {
// data response
})
// e.g. bulk update users
iterableInstace.users.bulkUpdate({
users: [
{
email: '[email protected]',
dataFields: {
// some data fields
},
userId: "someUserId"
}
]
})
Currently implemented resources are as follows:
lists
GET - /lists
POST - /lists
DELETE - /lists
GET - /lists/getUsers
POST - /lists/subscribe
POST - /lists/unsubscribe
events
GET - /events
POST - /events/track
POST - /events/trackBulk
POST - /events/trackInAppOpen
POST - /events/trackInAppClick
POST - /events/trackWebPushClick
POST - /events/trackPushOpen
users
GET - /users
DELETE - /users
POST - /users/update
POST - /users/updateEmail
POST - /users/bulkUpdate
POST - /users/registerDeviceToken
POST - /users/updateSubscriptions
POST - /users/bulkUpdateSubscriptions
GET - /users/getFields
GET - /users/getSentMessages
POST - /users/disableDevice
inApp
GET - /inApp/getMessages
push
POST - /push/target
campaigns
POST - /campaigns/create
channels
GET - /channels
commerce
POST - /commerce/trackPurchase
POST - /commerce/updateCart
email
GET - /email/viewInBrowser
POST - /email/target
workflows
POST - /workflows/triggerWorkflow
sms
POST - /sms/target
webPush
POST - /webPush/target
messageTypes
GET - /messageTypes
experiments
GET - /experiments/metrics
catalogs
GET - /catalogs
POST - /catalogs
DELETE - /catalogs
catalogs.fieldMappings
GET - /catalogs/{catalogName}/fieldMappings
PUT - /catalogs/{catalogName}/fieldMappings
catalogs.items
GET - /catalogs/{catalogName}/items
PUT - /catalogs/{catalogName}/items
POST - /catalogs/{catalogName}/items
PATCH - /catalogs/{catalogName}/items
DELETE - /catalogs/{catalogName}/items
subscriptions
PUT - /subscriptions
subscriptions.user
PATCH - /subscriptions/{subscriptionGroup}/{subscriptionGroupId}/user
DELETE - /subscriptions/{subscriptionGroup}/{subscriptionGroupId}/user
To run the full tests with coverage:
npm test
To run test driven development:
npm run tdd
To list the implemented resources:
node index.js