diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a17451..09e8736 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased +## [2.86.0] - 2019-11-19 +### Added +- support for profile images + ## 2.77.3 - Aug 16, 2019 - Added support for the following sheet summary methods: - `sheets.getSummary` diff --git a/lib/users/index.js b/lib/users/index.js index 0e882f9..10acb50 100644 --- a/lib/users/index.js +++ b/lib/users/index.js @@ -30,6 +30,14 @@ exports.create = function(options) { var removeUser = (deleteOptions, callback) => requestor.delete(_.extend({}, optionsToSend, deleteOptions), callback); + var addProfileImage = (postOptions, callback) => { + var urlOptions = {url: buildProfileImageUrl(postOptions)}; + return requestor.postFile(_.extend({}, optionsToSend, urlOptions, postOptions), callback); + }; + + var buildProfileImageUrl = urlOptions => + options.apiUrls.users + urlOptions.userId + '/profileimage' + var userObject = { getUser : listAllUsers, listAllUsers : listAllUsers, @@ -37,7 +45,8 @@ exports.create = function(options) { addUser : addUser, addUserAndSendEmail : addUserAndSendEmail, updateUser : updateUser, - removeUser : removeUser + removeUser : removeUser, + addProfileImage : addProfileImage, }; _.extend(userObject, alternateEmails.create(options)); diff --git a/package-lock.json b/package-lock.json index 68875ae..b88c2bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "smartsheet", - "version": "2.77.3", + "version": "2.86.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ba0b0a8..bbe52c9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "smartsheet", - "version": "2.77.4", + "version": "2.86.0", "description": "Smartsheet JavaScript client SDK", "main": "index.js", "scripts": { diff --git a/test/functional/client_test.js b/test/functional/client_test.js index fdc394f..15ba183 100644 --- a/test/functional/client_test.js +++ b/test/functional/client_test.js @@ -366,7 +366,7 @@ describe('Client Unit Tests', function() { describe('#users', function () { it('should have user object', function () { smartsheet.should.have.property('users'); - Object.keys(smartsheet.users).should.be.length(12); + Object.keys(smartsheet.users).should.be.length(13); }); it('should have get methods', function () { @@ -381,6 +381,7 @@ describe('Client Unit Tests', function() { smartsheet.users.should.have.property('addUser'); smartsheet.users.should.have.property('addUserAndSendEmail'); smartsheet.users.should.have.property('addAlternateEmail'); + smartsheet.users.should.have.property('addProfileImage'); }); it('should have update methods', function () { diff --git a/test/functional/endpoints_test.js b/test/functional/endpoints_test.js index 0f3f4f0..9b8f119 100644 --- a/test/functional/endpoints_test.js +++ b/test/functional/endpoints_test.js @@ -290,6 +290,8 @@ describe('Method Unit Tests', function () { { name: 'listAlternateEmails', stub: 'get', options: {userId: 123}, expectedRequest: {url: "users/123/alternateemails/"}}, { name: 'makeAlternateEmailPrimary', stub: 'post', options: {userId: 123, alternateEmailId: 234}, expectedRequest: {url: "users/123/alternateemails/234/makeprimary"}}, { name: 'deleteAlternateEmail', stub: 'delete', options: {userId: 123, alternateEmailId: 234}, expectedRequest: {url: "users/123/alternateemails/234"}}, + // profile image + { name: 'addProfileImage', stub: 'postFile', options: {userId: 123}, expectedRequest: {url: "users/123/profileimage"}}, ] }, {