From 49f3acb13ec20b47c5d91e894047ed70c1c1d1cb Mon Sep 17 00:00:00 2001 From: Nathan Armstrong Date: Sat, 9 Jun 2018 20:08:04 -0700 Subject: [PATCH 1/6] Add sheet summary endpoints. --- CHANGELOG.md | 2 ++ lib/sheets/index.js | 2 ++ lib/sheets/sheetsummaries.js | 53 +++++++++++++++++++++++++++++++ test/functional/endpoints_test.js | 7 ++++ 4 files changed, 64 insertions(+) create mode 100644 lib/sheets/sheetsummaries.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e1a488..d54c4ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased +### Added +- Added support for sheet summary endpoints. ## 2.77.2 - Aug 9, 2019 - Updated the following dependencies due to security vulnerabilities: diff --git a/lib/sheets/index.js b/lib/sheets/index.js index b7ef968..703358d 100644 --- a/lib/sheets/index.js +++ b/lib/sheets/index.js @@ -7,6 +7,7 @@ var createSheets = require('./create.js'); var crossSheetReferences = require('./crosssheetreferences.js'); var discussions = require('./discussions'); var getSheets = require('./get.js'); +var summaries = require('./sheetsummaries.js'); var rows = require('./rows.js'); var sentUpdateRequests = require('./sentupdaterequests.js'); var updateRequests = require('./updaterequests.js'); @@ -74,6 +75,7 @@ exports.create = function(options) { _.extend(sheetObject, crossSheetReferences.create(options)); _.extend(sheetObject, discussions.create(options)); _.extend(sheetObject, getSheets.create(options)); + _.extend(sheetObject, summaries.create(options)); _.extend(sheetObject, rows.create(options)); _.extend(sheetObject, sentUpdateRequests.create(options)); _.extend(sheetObject, shares.create(options)); diff --git a/lib/sheets/sheetsummaries.js b/lib/sheets/sheetsummaries.js new file mode 100644 index 0000000..e1070c3 --- /dev/null +++ b/lib/sheets/sheetsummaries.js @@ -0,0 +1,53 @@ +var _ = require('underscore'); + +exports.create = function(options) { + var requestor = options.requestor; + + var optionsToSend = _.extend({}, options.clientOptions); + + var getSummary = (getOptions, callback) => { + var urlOptions = {url: buildSummaryUrl(getOptions)}; + return requestor.get(_.extend({}, optionsToSend, urlOptions, getOptions), callback); + } + + var getSummaryFields = (getOptions, callback) => { + var urlOptions = {url: buildFieldsUrl(getOptions)}; + return requestor.get(_.extend({}, optionsToSend, urlOptions, getOptions), callback); + } + + var addSummaryFields = (postOptions, callback) => { + var urlOptions = {url: buildFieldsUrl(postOptions)}; + return requestor.post(_.extend({}, optionsToSend, urlOptions, postOptions), callback); + } + + var deleteSummaryFields = (deleteOptions, callback) => { + var urlOptions = {url: buildFieldsUrl(deleteOptions)}; + return requestor.delete(_.extend({}, optionsToSend, urlOptions, deleteOptions), callback); + } + + var updateSummaryFields = (putOptions, callback) => { + var urlOptions = {url: buildFieldsUrl(putOptions)}; + return requestor.put(_.extend({}, optionsToSend, urlOptions, putOptions), callback); + } + + var addSummaryFieldImage = (postOptions, callback) => { + var urlOptions = {url: buildFieldImagesUrl(postOptions)}; + return requestor.postFile(_.extend({}, optionsToSend, urlOptions, postOptions), callback); + } + + var buildSummaryUrl = urlOptions => options.apiUrls.sheets + urlOptions.sheetId + '/summary'; + + var buildFieldsUrl = urlOptions => buildSummaryUrl(urlOptions) + '/fields' + + var buildFieldImagesUrl = urlOptions => + buildFieldsUrl(urlOptions) + '/' + urlOptions.fieldId + '/images' + + return { + getSummary: getSummary, + getSummaryFields: getSummaryFields, + addSummaryFields: addSummaryFields, + deleteSummaryFields: deleteSummaryFields, + updateSummaryFields: updateSummaryFields, + addSummaryFieldImage: addSummaryFieldImage + }; +}; diff --git a/test/functional/endpoints_test.js b/test/functional/endpoints_test.js index 55cbbaa..0f3f4f0 100644 --- a/test/functional/endpoints_test.js +++ b/test/functional/endpoints_test.js @@ -201,6 +201,13 @@ describe('Method Unit Tests', function () { { name: 'getSheetAsPDF', stub: 'get', options: {}, expectedRequest: {url: "sheets/", accept: constants.acceptHeaders.applicationPdf, encoding:null}}, { name: 'getSheetVersion', stub: 'get', options: {sheetId: 123}, expectedRequest: {url: "sheets/123/version"}}, { name: 'listOrganizationSheets', stub: 'get', options: undefined, expectedRequest: {url: "users/sheets"}}, + // summaries + { name: 'getSummary', stub: 'get', options: {sheetId: 123}, expectedRequest: {url: "sheets/123/summary"}}, + { name: 'getSummaryFields', stub: 'get', options: {sheetId: 123}, expectedRequest: {url: "sheets/123/summary/fields"}}, + { name: 'addSummaryFields', stub: 'post', options: {sheetId: 123, body: {}}, expectedRequest: {url: "sheets/123/summary/fields"}}, + { name: 'deleteSummaryFields', stub: 'delete', options: {sheetId: 123}, expectedRequest: {url: "sheets/123/summary/fields"}}, + { name: 'updateSummaryFields', stub: 'put', options: {sheetId: 123, body: {}}, expectedRequest: {url: "sheets/123/summary/fields"}}, + { name: 'addSummaryFieldImage', stub: 'postFile', options: {sheetId: 123, fieldId: 234}, expectedRequest: {url: "sheets/123/summary/fields/234/images"}}, // rows { name: 'getRow', stub: 'get', options: {sheetId: 123, rowId: 234}, expectedRequest: {url: "sheets/123/rows/234"}}, { name: 'getRowAttachments', stub: 'get', options: {sheetId: 123, rowId: 234}, expectedRequest: {url: "sheets/123/rows/234/attachments"}}, From cc29d8ff50b82f50a67b93b2557721bbf1498668 Mon Sep 17 00:00:00 2001 From: Thomas Kreamer Date: Fri, 16 Aug 2019 14:45:40 -0700 Subject: [PATCH 2/6] Increment package. Add change to changlog --- CHANGELOG.md | 10 ++++++++-- package.json | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d54c4ad..9fdfb5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,14 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased -### Added -- Added support for sheet summary endpoints. +## 2.77.3 - Aug 16, 2019 +- Added support for the following sheet summary endpoints: + - `getSummary` + - `getSummaryFields` + - `addSummaryFields` + - `deleteSummaryFields` + - `updateSummaryFields` + - `addSummaryFieldImage` ## 2.77.2 - Aug 9, 2019 - Updated the following dependencies due to security vulnerabilities: diff --git a/package.json b/package.json index c3a2d3c..cffd92e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "smartsheet", - "version": "2.77.2", + "version": "2.77.3", "description": "Smartsheet JavaScript client SDK", "main": "index.js", "scripts": { From 322b3fffa5a5a0d92d76505bf3e694ab305fda99 Mon Sep 17 00:00:00 2001 From: Thomas Kreamer Date: Fri, 16 Aug 2019 14:47:43 -0700 Subject: [PATCH 3/6] Updated docs --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fdfb5a..d942bd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,12 +8,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased ## 2.77.3 - Aug 16, 2019 - Added support for the following sheet summary endpoints: - - `getSummary` - - `getSummaryFields` - - `addSummaryFields` - - `deleteSummaryFields` - - `updateSummaryFields` - - `addSummaryFieldImage` + - `sheets.getSummary` + - `sheets.getSummaryFields` + - `sheets.addSummaryFields` + - `sheets.deleteSummaryFields` + - `sheets.updateSummaryFields` + - `sheets.addSummaryFieldImage` ## 2.77.2 - Aug 9, 2019 - Updated the following dependencies due to security vulnerabilities: From 39a08e89695ead6b898d59f69c6bc072fb92d69c Mon Sep 17 00:00:00 2001 From: Thomas Kreamer Date: Fri, 16 Aug 2019 14:48:27 -0700 Subject: [PATCH 4/6] Corrected readme --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d942bd9..5a17451 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased ## 2.77.3 - Aug 16, 2019 -- Added support for the following sheet summary endpoints: +- Added support for the following sheet summary methods: - `sheets.getSummary` - `sheets.getSummaryFields` - `sheets.addSummaryFields` From 0c133c1e34883a8de6a060f507c53be7c9d8bae0 Mon Sep 17 00:00:00 2001 From: Thomas Kreamer Date: Fri, 16 Aug 2019 15:06:21 -0700 Subject: [PATCH 5/6] Reverted travis yml file. Updated package-lock.json --- .travis.yml | 2 +- package-lock.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b9d269f..e4cfd53 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,4 +27,4 @@ deploy: on: repo: smartsheet-platform/smartsheet-javascript-sdk branch: master -after_deploy: "echo 'Finished deployment process'" +after_deploy: "echo 'Finished deployment process'" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a2a9492..6e89c81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "smartsheet", - "version": "2.77.1", + "version": "2.77.3", "lockfileVersion": 1, "requires": true, "dependencies": { From f835c5a39296782939d3fbbc3b67a0e4b2645bcd Mon Sep 17 00:00:00 2001 From: Thomas Kreamer Date: Fri, 16 Aug 2019 17:33:13 -0700 Subject: [PATCH 6/6] Updated travis build --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index e4cfd53..30f5290 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,7 @@ language: node_js +dist: trusty + node_js: - "lts/carbon"