-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #92 from contentstack/next
Teams API support
- Loading branch information
Showing
35 changed files
with
1,180 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
threshold: medium | ||
fileignoreconfig: | ||
- filename: package-lock.json | ||
checksum: ef5d374553f431b5a952069f46184ec7e49efd7d72143e1a1642994758db4359 | ||
checksum: 9a7bec9513834a0fc7db31b9a312ec35980600415c04f0d404e1370cfce1ef1b | ||
version: "" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
import cloneDeep from 'lodash/cloneDeep' | ||
import { | ||
create, | ||
fetch, | ||
deleteEntity, | ||
fetchAll | ||
} from '../../entity' | ||
import { TeamUsers } from './teamUsers' | ||
import { StackRoleMappings } from './stackRoleMappings' | ||
import error from '../../core/contentstackError' | ||
|
||
export function Teams (http, data) { | ||
this.organizationUid = data.organizationUid | ||
this.urlPath = `/organizations/${this.organizationUid}/teams` | ||
if (data && data.uid) { | ||
Object.assign(this, cloneDeep(data)) | ||
|
||
this.urlPath = `/organizations/${this.organizationUid}/teams/${this.uid}` | ||
|
||
/** | ||
* @description The update call on team will allow to update details of team. | ||
* @memberof Teams | ||
* @func update | ||
* @returns {Promise<Teams.Teams>} Response Object. | ||
* @example | ||
* import * as contentstack from '@contentstack/management' | ||
* const client = contentstack.client() | ||
* const updateData = { | ||
* name: 'updatedname', | ||
* users: [ | ||
* { | ||
* email: '[email protected]' | ||
* } | ||
* ], | ||
* organizationRole: 'blt09e5dfced326aaea', | ||
* stackRoleMapping: [] | ||
* } | ||
* client.organization(s'organizationUid').teams('teamUid').update(updateData) | ||
* .then((response) => console.log(response)) | ||
* | ||
*/ | ||
this.update = async (updateData) => { | ||
try { | ||
const response = await http.put(this.urlPath, updateData) | ||
if (response.data) { | ||
return response.data | ||
} | ||
} catch (err) { | ||
throw error(err) | ||
} | ||
} | ||
|
||
/** | ||
* @description The delete call on team will delete the existing team. | ||
* @memberof Teams | ||
* @func delete | ||
* @returns {Promise<Teams.Teams>} Response Object. | ||
* @example | ||
* import * as contentstack from '@contentstack/management' | ||
* const client = contentstack.client() | ||
* client.organization('organizationUid').teams('teamUid').delete() | ||
* .then((response) => console.log(response)) | ||
* | ||
*/ | ||
this.delete = deleteEntity(http) | ||
|
||
/** | ||
* @description The fetch call on team will delete the existing team. | ||
* @memberof Teams | ||
* @func fetch | ||
* @returns {Promise<Teams.Teams>} Response Object. | ||
* @example | ||
* import * as contentstack from '@contentstack/management' | ||
* const client = contentstack.client() | ||
* client.organization('organizationUid').teams('teamUid').fetch() | ||
* .then((response) => console.log(response)) | ||
* | ||
*/ | ||
this.fetch = fetch(http, 'team') | ||
|
||
/** | ||
* @description The users call on team will get users details. | ||
* @memberof Teams | ||
* @func users | ||
* @returns {Promise<Teams.Teams>} Response Object. | ||
* @example | ||
* import * as contentstack from '@contentstack/management' | ||
* const client = contentstack.client() | ||
* client.organization('organizationUid').teams('teamUid').teamUsers().fetchAll() | ||
* .then((response) => console.log(response)) | ||
* | ||
*/ | ||
this.teamUsers = (userId = null) => { | ||
data.organizationUid = this.organizationUid | ||
data.teamUid = this.uid | ||
if (userId) { | ||
data.userId = userId | ||
} | ||
return new TeamUsers(http, data) | ||
} | ||
|
||
/** | ||
* @description The stackRoleMappings call on team will get the stack role Mapping. | ||
* @memberof Teams | ||
* @func users | ||
* @returns {Promise<Teams.Teams>} Response Object. | ||
* @example | ||
* import * as contentstack from '@contentstack/management' | ||
* const client = contentstack.client() | ||
* client.organization('organizationUid').teams('teamUid').stackRoleMappings().fetchAll() | ||
* .then((response) => console.log(response)) | ||
* | ||
*/ | ||
this.stackRoleMappings = (stackApiKey = null) => { | ||
data.organizationUid = this.organizationUid | ||
data.teamUid = this.uid | ||
if (stackApiKey) { | ||
data.stackApiKey = stackApiKey | ||
} | ||
return new StackRoleMappings(http, data) | ||
} | ||
} else { | ||
/** | ||
* @description The fetch call on team will delete the existing team. | ||
* @memberof Teams | ||
* @func create | ||
* @returns {Promise<Teams.Teams>} Response Object. | ||
* @example | ||
* import * as contentstack from '@contentstack/management' | ||
* const client = contentstack.client() | ||
* const team = { | ||
* name: 'name', | ||
* organizationUid: 'organization_uid', | ||
* users: [], | ||
* stackRoleMapping: [], | ||
* organizationRole: 'organizationRole' | ||
* } | ||
* client.organization('organizationUid').teams().create(team) | ||
* .then((response) => console.log(response)) | ||
* | ||
*/ | ||
this.create = create({ http }) | ||
|
||
/** | ||
* @description The fetchAll on team will allow to fetch details of all teams. | ||
* @memberof Teams | ||
* @func fetchAll | ||
* @returns {Promise<Teams.Teams>} Response Object. | ||
* @example | ||
* import * as contentstack from '@contentstack/management' | ||
* const client = contentstack.client() | ||
* | ||
* client.organization('organizationUid').teams().fetchAll() | ||
* .then((response) => console.log(response)) | ||
*/ | ||
this.fetchAll = fetchAll(http, TeamsCollection, { api_version: 1.1 }) | ||
} | ||
} | ||
export function TeamsCollection (http, teamsData) { | ||
const obj = cloneDeep(teamsData.teams) || [] | ||
const teamsCollection = obj.map((team) => { | ||
return new Teams(http, team) | ||
}) | ||
return teamsCollection | ||
} |
Oops, something went wrong.