Skip to content
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.

Commit

Permalink
Merge pull request #64 from smartsheet-platform/feature/sheet-summary…
Browse files Browse the repository at this point in the history
…-endpoints

Add sheet summary endpoints.
  • Loading branch information
kfansler authored Aug 19, 2019
2 parents 6f76394 + f835c5a commit a4181e9
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 3 deletions.
4 changes: 3 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
language: node_js

dist: trusty

node_js:
- "lts/carbon"

Expand Down Expand Up @@ -27,4 +29,4 @@ deploy:
on:
repo: smartsheet-platform/smartsheet-javascript-sdk
branch: master
after_deploy: "echo 'Finished deployment process'"
after_deploy: "echo 'Finished deployment process'"
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## Unreleased
## 2.77.3 - Aug 16, 2019
- Added support for the following sheet summary methods:
- `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:
Expand Down
2 changes: 2 additions & 0 deletions lib/sheets/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand Down Expand Up @@ -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));
Expand Down
53 changes: 53 additions & 0 deletions lib/sheets/sheetsummaries.js
Original file line number Diff line number Diff line change
@@ -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
};
};
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "smartsheet",
"version": "2.77.2",
"version": "2.77.3",
"description": "Smartsheet JavaScript client SDK",
"main": "index.js",
"scripts": {
Expand Down
7 changes: 7 additions & 0 deletions test/functional/endpoints_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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"}},
Expand Down

0 comments on commit a4181e9

Please sign in to comment.