So I have custom REST API with Get method where request parameter is PublicGroup Name and Response is list of Users from that publicGroup.
@RestResource(urlMapping='/GetUsers/*')
Global with sharing class UsersService {
@HttpGet
Global static List<User> UsersService() {
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
system.debug('req.requestURI'+req.requestURI);
String publicGroupName = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
String formatString = publicGroupName.replaceAll('[+]',' ');
List<Group> groupId = [SELECT Id, Name FROM Group WHERE Name =:formatString LIMIT 1];
List<User> publicGroupUsers = new List<User>();
for(User usr : [SELECT Id, FirstName, LastName, Email FROM User WHERE ID IN (SELECT UserORGroupID FROM GroupMember WHERE GroupID IN :groupID) AND IsActive=true]){
publicGroupUsers.add(usr);
}
return publicGroupUsers;
}
}
It's limited to 1 public group name as you can see. How do I get it to work for List of publicgroup names in request?
eg. /services/apexrest/GetUsers/group1;group2;test+group3
and response will be list of Users from all 3 publicgroup.