Skip to content

Commit 99fd59b

Browse files
committed
Merge pull request #121 from teamsnap/import-from-team
Import from team
2 parents 60d44ff + 795901b commit 99fd59b

File tree

7 files changed

+108
-7
lines changed

7 files changed

+108
-7
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# TeamSnap JavaScript SDK CHANGELOG
22

3+
### March 7, 2016 // Version 1.12.0
4+
- Adds `importMembersFromTeam` method.
5+
- Adds `loadImportableMembers` method.
6+
7+
---
8+
39
### March 2, 2016 // Version 1.11.2
410
- Adds error message to `memberPaymentTransaction` is `amount` is null.
511

docs/collections/members.md

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
- [getMemberSort](#getMemberSort)
1515
- [canEditTeam](#canEditTeam)
1616
- [canEditItem](#canEditItem)
17+
- [importMembersFromTeam](#importMembersFromTeam)
18+
- [loadImportableMembers](#loadImportableMembers)
1719

1820

1921
---
@@ -271,7 +273,7 @@ if(teamsnap.canEditTeam(member, team)){
271273

272274

273275
<a id="canEditItem"></a>
274-
## `canEditItem(meber, team, item)`
276+
## `canEditItem(member, team, item)`
275277
Returns true if a member has write permissions for a specific item on a team.
276278

277279
### Params
@@ -292,3 +294,40 @@ if(teamsnap.canEditItem(member, team, availability)){
292294
// Getouttahere.
293295
}
294296
```
297+
298+
299+
---
300+
301+
302+
<a id="importMembersFromTeam"></a>
303+
## `importMembersFromTeam(memberIds, teamId)`
304+
Creates an import of members from a different team to a destination team.
305+
306+
## Params
307+
* `memberIds`: [ids] - array of `memberIds` to be imported.
308+
* `teamId`: [id, object] - `teamId` or `team.id` of team to import members to.
309+
310+
### Examples
311+
```javascript
312+
// ~~~~~
313+
// Imports members to destination team
314+
teamsnap.importMembersFromTeam([1, 2], 3);
315+
```
316+
317+
---
318+
319+
320+
<a id="loadImportableMembers"></a>
321+
## `loadImportableMembers(userId, includeArchivedTeams)`
322+
Creates a list of importable members by current member's userId.
323+
324+
## Params
325+
* `userId`: [id] - `userId` of current member.
326+
* `includeArchivedTeams`: [bool] - include or exclude members from archived teams (optional).
327+
328+
### Examples
329+
```javascript
330+
// ~~~~~
331+
// Loads list of importable members by current member's userId
332+
teamsnap.loadImportableMembers(8, true);
333+
```

lib/teamsnap.js

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1794,6 +1794,39 @@ exports.canEditItem = function(member, team, item) {
17941794
}
17951795
};
17961796

1797+
exports.importMembersFromTeam = function(memberIds, teamId, callback) {
1798+
var params;
1799+
if (!memberIds) {
1800+
throw new TSArgsError('teamsnap.importMembersFromTeam', 'must include `memberIds`');
1801+
}
1802+
if (!this.isItem(teamId)) {
1803+
throw new TSArgsError('teamsnap.importMembersFromTeam', "must provide a teamId");
1804+
}
1805+
if (this.isItem(teamId)) {
1806+
teamId = teamId.id;
1807+
}
1808+
params = {
1809+
sourceMemberIds: memberIds,
1810+
destinationTeamId: teamId
1811+
};
1812+
return this.collections.members.exec('importFromTeam', params, callback);
1813+
};
1814+
1815+
exports.loadImportableMembers = function(userId, includeArchivedTeams, callback) {
1816+
var params;
1817+
if (!userId) {
1818+
throw new TSArgsError('teamsnap.loadImportableMembers', "must provide a userId");
1819+
}
1820+
if (typeof includeArchivedTeams === 'function') {
1821+
callback = includeArchivedTeams;
1822+
}
1823+
params = {
1824+
userId: userId,
1825+
includeArchivedTeams: includeArchivedTeams
1826+
};
1827+
return this.collections.members.queryItems('importableMembers', params, callback);
1828+
};
1829+
17971830
});
17981831

17991832
require.register("collections/membersPreferences", function(exports, require, module) {
@@ -5847,7 +5880,7 @@ ref = require('./model'), Collection = ref.Collection, Item = ref.Item;
58475880
require('./errors');
58485881

58495882
TeamSnap = (function() {
5850-
TeamSnap.prototype.version = '1.11.2';
5883+
TeamSnap.prototype.version = '1.12.0';
58515884

58525885
TeamSnap.prototype.promises = promises;
58535886

lib/teamsnap.min.js

Lines changed: 3 additions & 3 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.11.2",
3+
"version": "1.12.0",
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/members.coffee

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,26 @@ exports.canEditItem = (member, team, item) ->
145145
item.href is member.href
146146
else
147147
item.links.member.href is member.href
148+
149+
exports.importMembersFromTeam = (memberIds, teamId, callback) ->
150+
unless memberIds
151+
throw new TSArgsError 'teamsnap.importMembersFromTeam', 'must include
152+
`memberIds`'
153+
unless @isItem teamId
154+
throw new TSArgsError 'teamsnap.importMembersFromTeam', "must provide
155+
a teamId"
156+
if @isItem teamId
157+
teamId = teamId.id
158+
params = sourceMemberIds: memberIds, destinationTeamId: teamId
159+
160+
@collections.members.exec 'importFromTeam', params, callback
161+
162+
exports.loadImportableMembers = (userId, includeArchivedTeams, callback) ->
163+
unless userId
164+
throw new TSArgsError 'teamsnap.loadImportableMembers', "must provide
165+
a userId"
166+
if typeof includeArchivedTeams is 'function'
167+
callback = includeArchivedTeams
168+
params = userId: userId, includeArchivedTeams: includeArchivedTeams
169+
170+
@collections.members.queryItems 'importableMembers', params, callback

src/teamsnap.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ promises = require './promises'
33
require './errors'
44

55
class TeamSnap
6-
version: '1.11.2'
6+
version: '1.12.0'
77
promises: promises
88
when: promises.when
99
TeamSnap: TeamSnap

0 commit comments

Comments
 (0)