From 5fc3789f8d6ba8bab8efd98d08f5bad9d08bd706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zsef=20Kozma?= Date: Tue, 11 Aug 2015 18:30:41 +0200 Subject: [PATCH] fix(endpoints): added FieldAPI so we can use /fields on the JS side --- api/endpoints/field/index.js | 38 +++++++++++++++++++++++++++++++ api/endpoints/field/index.spec.js | 15 ++++++++++++ api/index.js | 3 +++ 3 files changed, 56 insertions(+) create mode 100644 api/endpoints/field/index.js create mode 100644 api/endpoints/field/index.spec.js diff --git a/api/endpoints/field/index.js b/api/endpoints/field/index.js new file mode 100644 index 0000000..364e8c4 --- /dev/null +++ b/api/endpoints/field/index.js @@ -0,0 +1,38 @@ +'use strict'; + +var util = require('util'); +var _ = require('lodash'); +var logger = require('logentries-logformat')('suite-sdk'); + +var Base = require('../_base'); + +var Field = function(request, options) { + Base.call(this, options); + this._request = request; +}; + +util.inherits(Field, Base); + +_.extend(Field.prototype, { + + get: function(payload, options) { + return this._requireParameters(payload, ['translate_id']).then(function() { + var url = util.format('/field/translate/%s', payload.translate_id); + logger.log('field_get'); + + return this._request.get( + this._getCustomerId(options), + this._buildUrl(url, payload, ['translate_id']), + options + ); + }.bind(this)); + } + +}); + + +Field.create = function(request, options) { + return new Field(request, options); +}; + +module.exports = Field; diff --git a/api/endpoints/field/index.spec.js b/api/endpoints/field/index.spec.js new file mode 100644 index 0000000..f8acf7f --- /dev/null +++ b/api/endpoints/field/index.spec.js @@ -0,0 +1,15 @@ +'use strict'; + +var expect = require('chai').expect; +var FieldAPI = require('./'); +var testApiMethod = require('../_test'); + +describe('SuiteAPI Field endpoint', function() { + + describe('#get', function() { + testApiMethod(FieldAPI, 'get').withArgs({ translate_id: 'en' }).shouldGetResultFromEndpoint('/field/translate/en'); + + testApiMethod(FieldAPI, 'get').withArgs({}).shouldThrowMissingParameterError('translate_id'); + }); + +}); diff --git a/api/index.js b/api/index.js index 93de13d..b04494b 100644 --- a/api/index.js +++ b/api/index.js @@ -9,6 +9,7 @@ var LanguageAPI = require('./endpoints/language'); var ExternalEventAPI = require('./endpoints/externalevent'); var SettingsAPI = require('./endpoints/settings'); var EmailAPI = require('./endpoints/email'); +var FieldAPI = require('./endpoints/field'); var SegmentAPI = require('./endpoints/segment'); var PurchaseAPI = require('./endpoints/purchase'); var KeyPool = require('escher-keypool'); @@ -24,6 +25,7 @@ var SuiteAPI = function(options) { this.contact = ContactAPI.create(this._apiRequest, options); this.contactList = ContactListAPI.create(this._apiRequest, options); this.email = EmailAPI.create(this._apiRequest, options); + this.field = FieldAPI.create(this._apiRequest, options); this.segment = SegmentAPI.create(this._apiRequest, options); this.language = LanguageAPI.create(this._apiRequest, options); this.externalEvent = ExternalEventAPI.create(this._apiRequest, options); @@ -96,5 +98,6 @@ module.exports.ExternalEvent = ExternalEventAPI; module.exports.Settings = SettingsAPI; module.exports.Purchase = PurchaseAPI; module.exports.Email = EmailAPI; +module.exports.Field = FieldAPI; module.exports.Segment = SegmentAPI; module.exports.SuiteRequestError = SuiteRequest.Error;