package hu.sch.web.rest;
import hu.sch.domain.Membership;
import hu.sch.domain.user.User;
import hu.sch.services.GroupManagerLocal;
import hu.sch.services.UserManagerLocal;
import hu.sch.util.PatternHolder;
import hu.sch.web.rest.dto.MembershipResult;
import java.util.HashSet;
import java.util.Set;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author balo
*/
@Path("/memberships")
public class Memberships extends PekWebservice {
private static final Logger log = LoggerFactory.getLogger(Memberships.class);
@Inject
private GroupManagerLocal groupManager;
@GET
@Produces(MediaType.APPLICATION_JSON)
@RequestScoped
@Path("/neptun/{neptun}")
public Set<MembershipResult> getMembershipsByNeptun(@PathParam("neptun") final String neptun) {
doAudit();
checkNeptun(neptun);
final User user = findUserByNeptun(neptun);
final Set<MembershipResult> result = new HashSet<>();
for (Membership ms : user.getMemberships()) {
//we need only active memberships
if (ms.getEnd() == null) {
final User groupLeader = groupManager.findLeaderForGroup(ms.getGroupId());
result.add(new MembershipResult(ms.getGroupId(),
ms.getGroup().getName(),
user.getId().equals(groupLeader.getId())));
}
}
return result;
}
}