package hu.sch.web.rest; import hu.sch.domain.Semester; import hu.sch.domain.rest.ApprovedEntrant; import hu.sch.services.ValuationManagerLocal; import hu.sch.services.exceptions.UserNotFoundException; import hu.sch.util.PatternHolder; import java.util.LinkedList; import java.util.List; 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.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author balo */ @Path("/entrants") public class Entrants extends PekWebservice { private static final Logger log = LoggerFactory.getLogger(Entrants.class); @Inject private ValuationManagerLocal valuationManager; @GET @Produces(MediaType.APPLICATION_JSON) @RequestScoped @Path("/get/{semester}/{neptun}") public List<ApprovedEntrant> getEntrants( @PathParam("neptun") final String neptun, @PathParam("semester") final String semesterId, @Context UriInfo context) { doAudit(); if (!PatternHolder.SEMESTER_PATTERN.matcher(semesterId).matches()) { log.error("Webservice called with invalid semesterid=" + semesterId); triggerErrorResponse(Response.Status.BAD_REQUEST); } checkNeptun(neptun); final List<ApprovedEntrant> entrants = new LinkedList<>(); try { entrants.addAll(valuationManager.getApprovedEntrants(neptun, new Semester(semesterId))); } catch (UserNotFoundException ex) { log.info("User not found with neptun code=" + neptun); triggerErrorResponse(Response.Status.NOT_FOUND); } return entrants; } }