suite-services-sdk v3.0.0-beta1
suite-js-sdk 
Simple Javascript wrapper for the Emarsys API.
Installation
npm install --save suite-js-sdkDevelop
npm testEmarsys API Hint
This wrapper tries to implement all available methods of the Emarsys API in a node fashion, exposing a Promise-only interface.
However, the Emarsys API lacks a decent amount of methods that you expect an API to provide. Thus, if methods are missing or a certain implementation style was choosen it is most likely due to the inconsistency of the API itself. Feel free to get in touch or submit a pull request if you encounter any problems.
Configuration and Setup
Debug
If you want to debug. Set your environment variables
DEBUG=suite-sdk,suiterequestAuthentication middleware
Configuration
Set your environment variables
SUITE_ESCHER_SECRET=yourEscherSecret
SUITE_ESCHER_CREDENTIAL_SCOPE=yourEscherCredentialScopeUsage
var middleware = require('suite-js-sdk').authentication.koaMiddleware.getMiddleware();If the authentication fails it throws an error with 401 code. If the authentication success it decorates the request with a validatedData property. It contains the signed parameters.
Translation middleware
Configuration
var middleware = require('suite-js-sdk').translations.koaMiddleware.decorateRenderWithTranslations();The middleware use 'validatedData' from the request. 'validatedData' must contains an 'environment' property. If you want to load an admins language then 'validatedData' must contains a 'customer_id' and an 'admin_id' properties. If you want to load a specific language then 'validatedData' must contains a 'language' property.
Usage
Middleware decorates the render method. It will add 'translations' object as render data. It also adds a '_' method as render data. So you can use it for transations.
translations = {
dialogs: {
invitation: {
confirmation: {
message: 'test string with %s and with %s'
}
}
}
}in your jade file
p.message= _('dialogs.invitation.confirmation.message', [ 'firstParameter', 'second parameter'])Interacting with the API
Authentication
Authenticate with the api credentials provided by your Emarsys account manager.
Set your environment variables
SUITE_API_KEY=yourApiKey
SUITE_API_SECRET=yourSecretKeyAfter in your Codebase
var SuiteAPI = require('suite-js-sdk').api;
var suiteAPI = SuiteAPI.create(options);Options
{String} customerId: the id of the customer{String} apiKey: API key{String} apiSecret: API secret{String} environment: API environment
SDK methods
Each of the following methods take a last options parameter as a last argument. With
this options set you can override the customerId, escherOptions, etc. that you had defined when created an
instance from the API client, like:
var SuiteAPI = require('suite-js-sdk').api;
var suiteAPI = SuiteAPI.create({
customerId: 1083232
});
suiteAPI.administrator.getAdministrators({
customerId: 20234245
});In the example above, the API will be called with customerId = 20234245.
Administrators
List
suiteAPI.administrator.getAdministrators(payload);Get
suiteAPI.administrator.getAdministrator(payload);Get By Name
suiteAPI.administrator.getAdministratorByName(payload);Patch
suiteAPI.administrator.patchAdministrator(payload);Create
suiteAPI.administrator.createAdministrator(payload);Delete
suiteAPI.administrator.deleteAdministrator(payload);Disable
suiteAPI.administrator.disableAdministrator(payload);Enable
suiteAPI.administrator.enableAdministrator(payload);Get Interface Languages
suiteAPI.administrator.getInterfaceLanguages(payload);Get Access Levels
suiteAPI.administrator.getAccessLevels(payload);Promote to Superadmin
suiteAPI.administrator.promoteToSuperadmin(payload);Create Administrator
suiteAPI.administrator.createAdministrator(payload);Create Superadmin
suiteAPI.administrator.createSuperadmin(payload);Invite Existing Administrator
suiteAPI.administrator.inviteExistingAdministrator(payload);Contact
Create
suiteAPI.contact.create(payload);Contact List
Create
suiteAPI.contactList.create(payload);List
suiteAPI.contactList.list(payload);ExternalEvent
Trigger
suiteAPI.externalEvent.trigger(payload);Language
Translate
suiteAPI.language.translate(payload);Settings
Get
suiteAPI.settings.getSettings(payload);Get Corporate Domains
suiteAPI.settings.getCorporateDomains(payload);Set Corporate Domains
suiteAPI.settings.setCorporateDomains(payload);Copy
suiteAPI.email.copy(payload);Update source
suiteAPI.email.updateSource(payload);Launch
suiteAPI.email.launch(payload);List
suiteAPI.email.list(payload);Segment
List contacts
suiteAPI.segment.listContacts(payload);List contacts
suiteAPI.segment.listSegments(payload);Purchases
List
suiteAPI.purchase.list(payload);10 years ago