Skip to content

Commit

Permalink
Merge pull request #37 from PlayNetwork/v1.1.2
Browse files Browse the repository at this point in the history
adding deleteSettings to settings sub-module
  • Loading branch information
brozeph committed Dec 1, 2016
2 parents 672b2a0 + cab9a3e commit 000e628
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 6 deletions.
4 changes: 4 additions & 0 deletions history.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# v1.1.2 - 2016/12/01

* Added `deleteSettings` to `settings` sub-module

# v1.1.1 - 2016/12/01

* Added `upsertCollections` and `upsertStations` methods to `music` sub-module
Expand Down
30 changes: 30 additions & 0 deletions lib/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,36 @@ module.exports = function (settingsOptions, ensureAuthHeaders, self) {
return validation.promiseOrCallback(exec, callback);
};

self.deleteSettings = (alias, options, callback) => {
// handle any non-specified input params
if (typeof options === 'function') {
callback = options;
options = undefined;
}

if (typeof alias === 'function') {
callback = settingId;
alias = undefined;
options = undefined;
}

let exec = co(function *() {
if (validation.isEmpty(alias)) {
return yield Promise.reject(new Error('settings identifier is required'));
}

let headers = yield ensureAuthHeaders();

return yield req.delete({
headers : headers,
pathname : `/v0/settings/${alias}`,
query : options
});
});

return validation.promiseOrCallback(exec, callback);
};

self.getSettings = (alias, options, callback) => {
// handle any non-specified input params
if (typeof options === 'function') {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "playnetwork-sdk",
"version": "1.1.1",
"version": "1.1.2",
"contributors": [
{
"name": "Joshua Thomas",
Expand Down
68 changes: 63 additions & 5 deletions test/lib/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -199,11 +199,6 @@ describe('settings', () => {
});

describe('#getSettings', () => {
// intercept outbound request
nock('https://curio-settings-api.apps.playnetwork.com')
.get('/v0/settings')
.reply(200, { });

it('should require setting identifer', (done) => {
settings.getSettings()
.then(() => {
Expand Down Expand Up @@ -250,6 +245,69 @@ describe('settings', () => {
});
});

describe('#deleteSettings', () => {
it('should require setting identifer', (done) => {
settings.deleteSettings()
.then(() => {
return done(new Error('should require settings identifier'));
})
.catch((err) => {
should.exist(err);
should.exist(err.message);
err.message.should.contain('settings identifier is required');

return done();
});
});

it('should properly delete settings (promise)', (done) => {
// intercept outbound request
nock('https://curio-settings-api.apps.playnetwork.com')
.delete('/v0/settings/test')
.reply(204);

settings.deleteSettings('test')
.then((result) => {
should.exist(result);
should.exist(requestInfo);

return done();
})
.catch((err) => (done(err)));
});

it('should properly delete settings (callback)', (done) => {
// intercept outbound request
nock('https://curio-settings-api.apps.playnetwork.com')
.delete('/v0/settings/test')
.reply(204);

settings.deleteSettings('test', function (err, result) {
should.not.exist(err);
should.exist(result);
should.exist(requestInfo);

return done();
});
});

it('should properly delete settings with options (promise)', (done) => {
// intercept outbound request
nock('https://curio-settings-api.apps.playnetwork.com')
.delete('/v0/settings/test?deviceToken=1')
.reply(204);

settings.deleteSettings('test', { deviceToken : 1 })
.then((result) => {
should.exist(result);
should.exist(requestInfo);

return done();
})
.catch((err) => (done(err)));
});
});

describe('#upsertSettings', () => {
let mockSetting = {
legacy : {
Expand Down

0 comments on commit 000e628

Please sign in to comment.