From ff72b23c198c827cbbefc464725fcd11c53791dd Mon Sep 17 00:00:00 2001 From: Matt Hopson Date: Thu, 1 Oct 2015 10:47:56 -0500 Subject: [PATCH] Bump version and build pre2 --- lib/teamsnap.js | 74 +++++++++++++++++++++++++++++++-------------- lib/test/js/test.js | 61 +++++++++++++++++++++++++++++++++++++ package.json | 2 +- src/teamsnap.coffee | 2 +- 4 files changed, 114 insertions(+), 25 deletions(-) diff --git a/lib/teamsnap.js b/lib/teamsnap.js index 4d3bd3d..cc84a2a 100644 --- a/lib/teamsnap.js +++ b/lib/teamsnap.js @@ -119,8 +119,6 @@ var TeamSnap, authRequest, browserStorageName, browserStore, collectionJSONMime, TeamSnap = require('./teamsnap').TeamSnap; -request = require('./request'); - promises = require('./promises'); request = require('./request'); @@ -469,6 +467,49 @@ exports.bulkMarkUnsetAvailabilities = function(memberId, statusCode, callback) { }); +require.register("collections/broadcastEmailAttachments", function(exports, require, module) { +exports.loadBroadcastEmailAttachments = function(params, callback) { + if (this.isId(params)) { + params = { + id: params + }; + } else if (!(params && typeof params === 'object')) { + throw new TSArgsError('teamsnap.loadBroadcastEmailAttachments', 'must provide an id or query parameters'); + } + return this.loadItems('broadcastEmailAttachment', params, callback); +}; + +exports.deleteBroadcastEmailAttachment = function(broadcastEmailAttachment, callback) { + if (!broadcastEmailAttachment) { + throw new TSArgsError('teamsnap.deleteBroadcastEmailAttachment', '`broadcastEmailAttachment` must be provided'); + } + return this.deleteItem(broadcastEmailAttachment, callback); +}; + +exports.uploadBroadcastEmailAttachment = function(broadcastEmailId, memberId, file, progressCallback, callback) { + var params; + if (typeof FormData === 'undefined') { + this.reject('Your browser does not support the new file upload APIs.', 'file', callback); + } + if (!broadcastEmailId) { + throw new TSArgsError('teamsnap.uploadBroadcastEmailAttachment', 'broadcastEmailId is required'); + } + if (!(file instanceof File)) { + throw new TSArgsError('teamsnap.uploadBroadcastEmailAttachment', 'must include `file` as type File', 'file is required'); + } + if (!memberId) { + throw new TSArgsError('teamsnap.uploadBroadcastEmailAttachment', 'memberId is required'); + } + params = { + broadcastEmailId: broadcastEmailId, + file: file, + memberId: memberId + }; + return this.collections.broadcastEmailAttachments.file('uploadBroadcastEmailAttachment', params, progressCallback, callback); +}; + +}); + require.register("collections/broadcastEmails", function(exports, require, module) { exports.loadBroadcastEmails = function(params, callback) { if (this.isId(params)) { @@ -514,24 +555,6 @@ exports.deleteBroadcastEmail = function(broadcastEmail, callback) { return this.deleteItem(broadcastEmail, callback); }; -exports.uploadAttachment = function(broadcastEmailId, file, callback) { - var params; - if (typeof FormData === 'undefined') { - this.reject('Your browser does not support the new file upload APIs.', 'file', callback); - } - if (!file) { - throw new TSArgsError('teamsnap.uploadAttachment', 'file is required'); - } - if (!broadcastEmailId) { - throw new TSArgsError('teamsnap.uploadAttachment', 'broadcastEmailId is required'); - } - params = { - broadcastEmailId: broadcastEmailId, - file: file - }; - return this.collections.broadcastEmails.exec('uploadAttachment', params); -}; - }); require.register("collections/broadcastSms", function(exports, require, module) { @@ -3922,6 +3945,8 @@ modifySDK = function(sdk) { memberId: member.id }), sdk.loadLeagueCustomData({ memberId: member.id + }), sdk.loadMemberPayments({ + memberId: member.id })); }); wrapMethod(sdk, 'deleteMember', function(deleteMember) { @@ -3937,6 +3962,7 @@ modifySDK = function(sdk) { }); toRemove.push.apply(toRemove, member.trackedItemStatuses); toRemove.push.apply(toRemove, member.memberPayments); + toRemove.push.apply(toRemove, member.memberStatistics); toRemove.push.apply(toRemove, member.statisticData); linking.unlinkItems(toRemove, lookup); return deleteMember.call(this, member, callback).fail(function(err) { @@ -4072,7 +4098,7 @@ modifySDK = function(sdk) { wrapSave(sdk, 'bulkSaveStatisticData', function(templates) { if ((templates[0] != null) && (templates[0].memberId != null)) { return sdk.loadMemberStatistics({ - memberId: templates[0].memberId + teamId: templates[0].teamId }); } }); @@ -5115,6 +5141,8 @@ add(require('./collections/availabilities')); add(require('./collections/broadcastEmails')); +add(require('./collections/broadcastEmailAttachments')); + add(require('./collections/broadcastSms')); add(require('./collections/contactEmailAddresses')); @@ -5243,7 +5271,7 @@ ref = require('./model'), Collection = ref.Collection, Item = ref.Item; require('./errors'); TeamSnap = (function() { - TeamSnap.prototype.version = '1.7.0-pre'; + TeamSnap.prototype.version = '1.7.0-pre2'; TeamSnap.prototype.promises = promises; @@ -5283,7 +5311,7 @@ var i, len, plural, pluralLookup, singularLookup, teamTypes, teamsnap, type, typ teamsnap = exports; -types = ['user', 'assignment', 'availability', 'broadcastEmail', 'broadcastSms', 'contact', 'contactEmailAddress', 'contactPhoneNumber', 'customDatum', 'customField', 'leagueCustomDatum', 'leagueCustomField', 'divisionLocation', 'divisionMember', 'divisionMemberPreferences', 'divisionTeamStanding', 'event', 'forumPost', 'forumSubscription', 'forumTopic', 'leagueRegistrantDocument', 'location', 'member', 'memberBalance', 'memberEmailAddress', 'memberFile', 'memberLink', 'memberPayment', 'memberPhoneNumber', 'memberPreferences', 'memberStatistic', 'opponent', 'opponentResults', 'paymentNote', 'plan', 'smsGateway', 'sponsor', 'statistic', 'statisticDatum', 'statisticGroup', 'sport', 'team', 'teamFee', 'teamMedium', 'teamMediumComment', 'teamMediaGroup', 'teamPaypalPreferences', 'teamPreferences', 'teamPublicSite', 'teamResults', 'teamStatistic', 'timeZone', 'trackedItem', 'trackedItemStatus']; +types = ['user', 'assignment', 'availability', 'broadcastEmail', 'broadcastEmailAttachment', 'broadcastSms', 'contact', 'contactEmailAddress', 'contactPhoneNumber', 'customDatum', 'customField', 'leagueCustomDatum', 'leagueCustomField', 'divisionLocation', 'divisionMember', 'divisionMemberPreferences', 'divisionTeamStanding', 'event', 'forumPost', 'forumSubscription', 'forumTopic', 'leagueRegistrantDocument', 'location', 'member', 'memberBalance', 'memberEmailAddress', 'memberFile', 'memberLink', 'memberPayment', 'memberPhoneNumber', 'memberPreferences', 'memberStatistic', 'opponent', 'opponentResults', 'paymentNote', 'plan', 'smsGateway', 'sponsor', 'statistic', 'statisticDatum', 'statisticGroup', 'sport', 'team', 'teamFee', 'teamMedium', 'teamMediumComment', 'teamMediaGroup', 'teamPaypalPreferences', 'teamPreferences', 'teamPublicSite', 'teamResults', 'teamStatistic', 'timeZone', 'trackedItem', 'trackedItemStatus']; teamTypes = types.slice(); diff --git a/lib/test/js/test.js b/lib/test/js/test.js index 2d3ebce..f529af2 100644 --- a/lib/test/js/test.js +++ b/lib/test/js/test.js @@ -219,6 +219,67 @@ describe('Broadcast Emails', function() { }); +require.register("test/broadcastEmailAttachment", function(exports, require, module) { +describe('Broadcast Email Attachments', function() { + var email, recipient, sender; + email = null; + sender = null; + recipient = null; + before(function(done) { + return teamsnap.loadMe().then(function(me) { + return teamsnap.loadMembers({ + userId: me.id + }, function(err, result) { + result.should.be.an('array'); + sender = result[0]; + return done(); + }); + }); + }); + before(function(done) { + recipient = teamsnap.createMember(); + recipient.teamId = team.id; + recipient.firstName = 'Test'; + return teamsnap.saveMember(recipient, function(err, result) { + var memberEmail; + expect(err).to.be["null"]; + memberEmail = teamsnap.createMemberEmailAddress(); + memberEmail.memberId = recipient.id; + memberEmail.email = "recipient@example.com"; + return teamsnap.saveMemberEmailAddress(memberEmail, function(err, result) { + expect(err).to.be["null"]; + email = teamsnap.createBroadcastEmail(); + email.teamId = team.id; + email.memberId = sender.id; + email.body = "Hello world"; + email.subject = "Subject!"; + email.recipientIds = [recipient.id]; + return teamsnap.saveBroadcastEmail(email, function(err, result) { + expect(err).to.be["null"]; + return done(); + }); + }); + }); + }); + after(function(done) { + return teamsnap.deleteMember(recipient, function(err, result) { + expect(err).to.be["null"]; + return done(); + }); + }); + return it('should be able to load broadcast email attachments', function(done) { + return teamsnap.loadBroadcastEmailAttachments({ + broadcastEmailId: email.id + }, function(err, result) { + expect(err).to.be["null"]; + result.should.be.an('array'); + return done(); + }); + }); +}); + +}); + require.register("test/broadcastSms", function(exports, require, module) { describe('Broadcast Smses', function() { var recipient, sender, sms; diff --git a/package.json b/package.json index 5311152..f134146 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "teamsnap.js", - "version": "1.7.0-pre", + "version": "1.7.0-pre2", "description": "A JavaScript library for using the TeamSnap API.", "author": "Jacob Wright with TeamSnap (http://www.teamsnap.com)", "homepage": "https://github.com/teamsnap/teamsnap-javascript-sdk", diff --git a/src/teamsnap.coffee b/src/teamsnap.coffee index 4c37162..5711979 100644 --- a/src/teamsnap.coffee +++ b/src/teamsnap.coffee @@ -3,7 +3,7 @@ promises = require './promises' require './errors' class TeamSnap - version: '1.7.0-pre' + version: '1.7.0-pre2' promises: promises when: promises.when TeamSnap: TeamSnap