Custom function code:-
zuidList = list();
/* Get all owners and teams. */
for each owner in taskOwners
{
zuidList.add(owner.get("id").toString());
}
getTeamUsers = invokeurl
[
url :endPointV3 + portalId + "/teams/users"
type :GET
connection:"XXXXX"
];
if(getTeamUsers.get("page_info").get("count") > 0)
{
associtedTeams = list();
for each user in getTeamUsers.get("team_users")
{
info zuidList + " == " + user.get("zuid") + " : " + zuidList.contains(user.get("zuid"));
if(zuidList.contains(user.get("zuid")))
{
associtedTeams.addAll(user.get("associted_teams"));
}
}
associtedTeams = associtedTeams.distinct();
}
/* Get all associate teams */
getAssociatedTeams = invokeurl
[
url :endPointV3 + portalId + "/projects/" + projectId + "/teams"
type :GET
connection:"XXXXX"
];
// info getAssociatedTeams;
associteTeam = list();
for each teamid in associtedTeams
{
associteTeam.add({"id":teamid});
}
/* Remove teams that are already associated */
if(getAssociatedTeams.get("page_info").get("count") > 0)
{
for each team in getAssociatedTeams.get("teams")
{
if(associtedTeams.contains(team.get("id")))
{
associtedTeams.removeElement(team.get("id"));
}
}
}
// info associtedTeams;
/* Associate teams to project of not added */
if(associtedTeams.size() > 0)
{
params = Map();
params.put("team_ids",associtedTeams);
info params;
associateTeamToProject = invokeurl
[
url :endPointV3 + portalId + "/projects/" + projectId + "/associate-teams"
type :POST
parameters:params
connection:"XXXXX"
];
info associateTeamToProject;
}
/* Associate teams to task of not added */
if(associteTeam.size() > 0)
{
params = Map();
params.put("teams",{{"add":associteTeam}});
info params;
associateTeamToTask = invokeurl
[
url :endPointV3 + portalId + "/projects/" + projectId + "/tasks/" + taskId
type :PATCH
parameters:params.toString()
connection:"XXXXX"
];
info associateTeamToTask;
}
return "success";