Skip to content

Commit e7768d8

Browse files
committed
Merge pull request #98 from teamsnap/member-persistence
Member persistence
2 parents 9961d58 + 37b0f1e commit e7768d8

File tree

6 files changed

+290
-101
lines changed

6 files changed

+290
-101
lines changed

lib/teamsnap.js

Lines changed: 164 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2363,7 +2363,7 @@ exports.assignMediaToGroup = function(teamMediumIds, teamMediaGroupId, callback)
23632363
teamMediumIds: teamMediumIds,
23642364
teamMediaGroupId: teamMediaGroupId
23652365
};
2366-
return this.collections.teamMedia.exec('assignMediaToGroup', params).pop().callback(callback);
2366+
return this.collections.teamMedia.exec('assignMediaToGroup', params).callback(callback);
23672367
};
23682368

23692369
exports.rotateTeamMediumImage = function(teamMediumId, rotateDirection, callback) {
@@ -4168,12 +4168,106 @@ modifySDK = function(sdk) {
41684168
toRemove.push.apply(toRemove, contact.contactEmailAddresses);
41694169
toRemove.push.apply(toRemove, contact.contactPhoneNumbers);
41704170
linking.unlinkItems(toRemove, lookup);
4171-
return deleteContact.call(this, contact, callback).fail(function(err) {
4171+
return deleteContact.call(this, contact, callback).then(function(result) {
4172+
return sdk.loadMembers({
4173+
memberId: contact.memberId
4174+
}).then(function() {
4175+
return result;
4176+
});
4177+
}).fail(function(err) {
41724178
linking.linkItems(toRemove, lookup);
41734179
return err;
41744180
}).callback(callback);
41754181
};
41764182
});
4183+
wrapMethod(sdk, 'saveMemberEmailAddress', function(saveMemberEmailAddress) {
4184+
return function(emailAddress, callback) {
4185+
return saveMemberEmailAddress.call(this, emailAddress, callback).then(function(result) {
4186+
return sdk.loadMembers({
4187+
id: emailAddress.memberId
4188+
}).then(function() {
4189+
return result;
4190+
});
4191+
}).callback(callback);
4192+
};
4193+
});
4194+
wrapMethod(sdk, 'deleteMemberEmailAddress', function(deleteMemberEmailAddress) {
4195+
return function(emailAddress, callback) {
4196+
return deleteMemberEmailAddress.call(this, emailAddress, callback).then(function(result) {
4197+
return sdk.loadMembers({
4198+
id: emailAddress.memberId
4199+
}).then(function() {
4200+
return result;
4201+
});
4202+
}).callback(callback);
4203+
};
4204+
});
4205+
wrapMethod(sdk, 'saveMemberPhoneNumber', function(saveMemberPhoneNumber) {
4206+
return function(phoneNumber, callback) {
4207+
return saveMemberPhoneNumber.call(this, phoneNumber, callback).then(function(result) {
4208+
return sdk.loadMembers({
4209+
id: phoneNumber.memberId
4210+
}).then(function() {
4211+
return result;
4212+
});
4213+
}).callback(callback);
4214+
};
4215+
});
4216+
wrapMethod(sdk, 'deleteMemberPhoneNumber', function(deleteMemberPhoneNumber) {
4217+
return function(phoneNumber, callback) {
4218+
return deleteMemberPhoneNumber.call(this, phoneNumber, callback).then(function(result) {
4219+
return sdk.loadMembers({
4220+
id: phoneNumber.memberId
4221+
}).then(function() {
4222+
return result;
4223+
});
4224+
}).callback(callback);
4225+
};
4226+
});
4227+
wrapMethod(sdk, 'saveContactEmailAddress', function(saveContactEmailAddress) {
4228+
return function(emailAddress, callback) {
4229+
return saveContactEmailAddress.call(this, emailAddress, callback).then(function(result) {
4230+
return sdk.loadMembers({
4231+
id: emailAddress.memberId
4232+
}).then(function() {
4233+
return result;
4234+
});
4235+
}).callback(callback);
4236+
};
4237+
});
4238+
wrapMethod(sdk, 'deleteContactEmailAddress', function(deleteContactEmailAddress) {
4239+
return function(emailAddress, callback) {
4240+
return deleteContactEmailAddress.call(this, emailAddress, callback).then(function(result) {
4241+
return sdk.loadMembers({
4242+
id: emailAddress.memberId
4243+
}).then(function() {
4244+
return result;
4245+
});
4246+
}).callback(callback);
4247+
};
4248+
});
4249+
wrapMethod(sdk, 'saveContactPhoneNumber', function(saveContactPhoneNumber) {
4250+
return function(phoneNumber, callback) {
4251+
return saveContactPhoneNumber.call(this, phoneNumber, callback).then(function(result) {
4252+
return sdk.loadMembers({
4253+
id: phoneNumber.memberId
4254+
}).then(function() {
4255+
return result;
4256+
});
4257+
}).callback(callback);
4258+
};
4259+
});
4260+
wrapMethod(sdk, 'deleteContactPhoneNumber', function(deleteContactPhoneNumber) {
4261+
return function(phoneNumber, callback) {
4262+
return deleteContactPhoneNumber.call(this, phoneNumber, callback).then(function(result) {
4263+
return sdk.loadMembers({
4264+
id: phoneNumber.memberId
4265+
}).then(function() {
4266+
return result;
4267+
});
4268+
}).callback(callback);
4269+
};
4270+
});
41774271
wrapSave(sdk, 'saveEvent', function(event) {
41784272
var ids;
41794273
ids = Array.isArray(event) ? (event.map(function(event) {
@@ -4289,36 +4383,52 @@ modifySDK = function(sdk) {
42894383
}).callback(callback);
42904384
};
42914385
});
4292-
wrapSave(sdk, 'saveStatistic', function(statistic) {
4293-
var bulkLoadTypes, teamId;
4294-
teamId = statistic.teamId;
4295-
bulkLoadTypes = ['memberStatistic', 'teamStatistic', 'statisticAggregate'];
4296-
return sdk.bulkLoad(teamId, bulkLoadTypes);
4297-
}, function(statistic) {
4298-
return sdk.loadEventStatistics({
4299-
statisticId: statistic.id
4300-
});
4386+
wrapMethod(sdk, 'saveStatistic', function(saveStatistic) {
4387+
return function(statistic, callback) {
4388+
return saveStatistic.call(this, statistic, callback).then(function(result) {
4389+
var bulkLoadTypes, statisticId, teamId;
4390+
teamId = statistic.teamId;
4391+
statisticId = result.id;
4392+
bulkLoadTypes = ['memberStatistic', 'teamStatistic', 'statisticAggregate'];
4393+
return promises.when(sdk.bulkLoad(teamId, bulkLoadTypes), sdk.loadEventStatistics({
4394+
statisticId: statisticId
4395+
})).then(function() {
4396+
return result;
4397+
});
4398+
}).callback(callback);
4399+
};
43014400
});
4302-
wrapSave(sdk, 'bulkSaveStatisticData', function(templates) {
4303-
var bulkLoadTypes, statisticId, teamId;
4304-
if ((templates[0] != null) && (templates[0].memberId != null)) {
4305-
teamId = templates[0].teamId;
4306-
statisticId = templates[0].statisticId;
4307-
bulkLoadTypes = ['memberStatistic', 'statisticAggregate'];
4308-
sdk.bulkLoad(teamId, bulkLoadTypes);
4309-
return sdk.loadEventStatistics({
4310-
statisticId: statisticId
4311-
});
4312-
}
4401+
wrapMethod(sdk, 'bulkSaveStatisticData', function(bulkSaveStatisticData) {
4402+
return function(templates, callback) {
4403+
return bulkSaveStatisticData.call(this, templates, callback).then(function(result) {
4404+
var bulkLoadTypes, statisticId, teamId;
4405+
if ((result[0] != null) && (result[0].teamId != null)) {
4406+
teamId = result[0].teamId;
4407+
statisticId = result[0].statisticId;
4408+
bulkLoadTypes = ['memberStatistic', 'statisticAggregate'];
4409+
return promises.when(sdk.bulkLoad(teamId, bulkLoadTypes), sdk.loadEventStatistics({
4410+
statisticId: statisticId
4411+
})).then(function() {
4412+
return result;
4413+
});
4414+
}
4415+
}).callback(callback);
4416+
};
43134417
});
4314-
wrapSave(sdk, 'saveStatisticDatum', function(statisticDatum) {
4315-
var bulkLoadTypes, teamId;
4316-
teamId = statisticDatum.teamId;
4317-
bulkLoadTypes = ['memberStatistic', 'statisticAggregate'];
4318-
sdk.bulkLoad(teamId, bulkLoadTypes);
4319-
return sdk.loadEventStatistics({
4320-
statisticId: statisticDatum.statisticId
4321-
});
4418+
wrapMethod(sdk, 'saveStatisticDatum', function(saveStatisticDatum) {
4419+
return function(statisticDatum, callback) {
4420+
return saveStatisticDatum.call(this, statisticDatum, callback).then(function(result) {
4421+
var bulkLoadTypes, statisticId, teamId;
4422+
teamId = result.teamId;
4423+
statisticId = result.statisticId;
4424+
bulkLoadTypes = ['memberStatistic', 'statisticAggregate'];
4425+
return promises.when(sdk.bulkLoad(teamId, bulkLoadTypes), sdk.loadEventStatistics({
4426+
statisticId: statisticId
4427+
})).then(function() {
4428+
return result;
4429+
});
4430+
}).callback(callback);
4431+
};
43224432
});
43234433
wrapMethod(sdk, 'bulkDeleteStatisticData', function(bulkDeleteStatisticData) {
43244434
return function(member, event, callback) {
@@ -4334,9 +4444,9 @@ modifySDK = function(sdk) {
43344444
}
43354445
linking.unlinkItems(toRemove, lookup);
43364446
return bulkDeleteStatisticData.call(this, member, event).then(function(result) {
4337-
var bulkLoadTypes, teamId;
4338-
return promises.when(teamId = member.teamId, bulkLoadTypes = ['memberStatistic', 'statisticAggregate'], sdk.bulkLoad(teamId, bulkLoadTypes), sdk.loadEventStatistics({
4339-
eventId: event.id
4447+
var bulkLoadTypes, eventId, teamId;
4448+
return promises.when(teamId = member.teamId, eventId = event.id, bulkLoadTypes = ['memberStatistic', 'statisticAggregate'], sdk.bulkLoad(teamId, bulkLoadTypes), sdk.loadEventStatistics({
4449+
eventId: eventId
43404450
})).then(function() {
43414451
return result;
43424452
});
@@ -4349,10 +4459,13 @@ modifySDK = function(sdk) {
43494459
wrapMethod(sdk, 'saveMemberPayment', function(saveMemberPayment) {
43504460
return function(memberPayment, callback) {
43514461
return saveMemberPayment.call(this, memberPayment).then(function(result) {
4462+
var memberId, teamFeeId;
4463+
memberId = result.memberId;
4464+
teamFeeId = result.teamFeeId;
43524465
return promises.when(sdk.loadMemberBalances({
4353-
memberId: memberPayment.memberId
4466+
memberId: memberId
43544467
}), sdk.loadTeamFees({
4355-
id: memberPayment.teamFeeId
4468+
id: teamFeeId
43564469
})).then(function() {
43574470
return result;
43584471
});
@@ -4362,8 +4475,10 @@ modifySDK = function(sdk) {
43624475
wrapMethod(sdk, 'saveTeamFee', function(saveTeamFee) {
43634476
return function(teamFee, callback) {
43644477
return saveTeamFee.call(this, teamFee).then(function(result) {
4478+
var teamId;
4479+
teamId = result.teamId;
43654480
return sdk.loadMemberBalances({
4366-
teamId: teamFee.teamId
4481+
teamId: teamId
43674482
}).then(function() {
43684483
return result;
43694484
});
@@ -4373,8 +4488,10 @@ modifySDK = function(sdk) {
43734488
wrapMethod(sdk, 'deleteTeamFee', function(deleteTeamFee) {
43744489
return function(teamFee, callback) {
43754490
return deleteTeamFee.call(this, teamFee).then(function(result) {
4491+
var teamId;
4492+
teamId = teamFee.teamId;
43764493
return sdk.loadMemberBalances({
4377-
teamId: teamFee.teamId
4494+
teamId: teamId
43784495
}).then(function() {
43794496
return result;
43804497
});
@@ -4384,30 +4501,23 @@ modifySDK = function(sdk) {
43844501
wrapMethod(sdk, 'assignMediaToGroup', function(assignMediaToGroup) {
43854502
return function(teamMediumIds, teamMediaGroup, callback) {
43864503
return assignMediaToGroup.call(this, teamMediumIds, teamMediaGroup).then(function(result) {
4387-
if (teamMediaGroup.teamId != null) {
4388-
return promises.when(sdk.loadTeamMediaGroups({
4389-
teamId: teamMediaGroup.teamId
4390-
}), sdk.loadTeamMedia({
4391-
teamId: teamMediaGroup.teamId
4392-
})).then(function() {
4393-
return result;
4394-
});
4395-
} else {
4504+
var bulkLoadTypes, teamId;
4505+
teamId = result[0].teamId;
4506+
bulkLoadTypes = ['teamMediaGroup', 'teamMedium'];
4507+
return sdk.bulkLoad(teamId, bulkLoadTypes).then(function() {
43964508
return result;
4397-
}
4509+
});
43984510
}).callback(callback);
43994511
};
44004512
});
44014513
wrapMethod(sdk, 'setMediumAsTeamPhoto', function(setMediumAsTeamPhoto) {
44024514
return function(teamMedium, callback) {
44034515
return setMediumAsTeamPhoto.call(this, teamMedium).then(function(result) {
4404-
if (teamMedium.teamId != null) {
4405-
return sdk.loadTeamPreferences(teamMedium.teamId).then(function() {
4406-
return result;
4407-
});
4408-
} else {
4516+
var teamId;
4517+
teamId = result.teamId;
4518+
return sdk.loadTeamPreferences(teamId).then(function() {
44094519
return result;
4410-
}
4520+
});
44114521
}).callback(callback);
44124522
};
44134523
});
@@ -5542,7 +5652,7 @@ ref = require('./model'), Collection = ref.Collection, Item = ref.Item;
55425652
require('./errors');
55435653

55445654
TeamSnap = (function() {
5545-
TeamSnap.prototype.version = '1.7.0-pre21';
5655+
TeamSnap.prototype.version = '1.7.0-pre22';
55465656

55475657
TeamSnap.prototype.promises = promises;
55485658

lib/teamsnap.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "teamsnap.js",
3-
"version": "1.7.0-pre21",
3+
"version": "1.7.0-pre22",
44
"description": "A JavaScript library for using the TeamSnap API.",
55
"author": "Jacob Wright with TeamSnap (http://www.teamsnap.com)",
66
"homepage": "https://github.com/teamsnap/teamsnap-javascript-sdk",

src/collections/teamMedia.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ exports.assignMediaToGroup = (teamMediumIds, teamMediaGroupId, callback) ->
107107
teamMediaGroupId: teamMediaGroupId
108108

109109
@collections.teamMedia.exec('assignMediaToGroup', params)
110-
.pop().callback callback
110+
.callback callback
111111

112112

113113
exports.rotateTeamMediumImage = (teamMediumId, rotateDirection, callback) ->

0 commit comments

Comments
 (0)