Commit 01346b1e by Tuomas Riihimäki

Committed reader rest

1 parent d59f0eda
package fi.codecrew.moya.beans; package fi.codecrew.moya.beans;
import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -53,12 +54,11 @@ public class ReaderBean implements ReaderBeanLocal { ...@@ -53,12 +54,11 @@ public class ReaderBean implements ReaderBeanLocal {
public ReaderEvent checkTag(String readerIdent, String tag, String hash) { public ReaderEvent checkTag(String readerIdent, String tag, String hash) {
Reader reader = readerfacade.findOrCreateByIdent(readerIdent); Reader reader = readerfacade.findOrCreateByIdent(readerIdent);
tag = tag.replace("\"\b", ""); tag = tag.replace("\"\b", "");
if(reader.getType() == ReaderType.RFID) { if (reader.getType() == ReaderType.RFID) {
if (Pattern.matches("^.*000000$", tag)) if (Pattern.matches("^.*000000$", tag))
{ {
tag = tag.replace("000000", ""); tag = tag.replace("000000", "");
...@@ -72,7 +72,7 @@ public class ReaderBean implements ReaderBeanLocal { ...@@ -72,7 +72,7 @@ public class ReaderBean implements ReaderBeanLocal {
} }
PrintedCard card = cardfacade.findByRfid(tag); PrintedCard card = cardfacade.findByRfid(tag);
logger.info("reader {}, card {}", reader, card); logger.info("reader {}, card {}", reader, card);
// RfidEvent revent = reventcontainer.foundTag(reader, tag); // RfidEvent revent = reventcontainer.foundTag(reader, tag);
...@@ -205,17 +205,16 @@ public class ReaderBean implements ReaderBeanLocal { ...@@ -205,17 +205,16 @@ public class ReaderBean implements ReaderBeanLocal {
Reader reader = readerfacade.find(readerId); Reader reader = readerfacade.find(readerId);
return readerEventFacade.findLastEvents(reader, 20); return readerEventFacade.findLastEvents(reader, 20);
} }
@Override @Override
public ReaderEvent getLastReaderEvent(Integer readerId) { public ReaderEvent getLastReaderEvent(Integer readerId) {
Reader reader = readerfacade.find(readerId); Reader reader = readerfacade.find(readerId);
List<ReaderEvent> list = readerEventFacade.findLastEvents(reader, 1); List<ReaderEvent> list = readerEventFacade.findLastEvents(reader, 1);
if(list.size() > 0) if (list.size() > 0)
return list.get(0); return list.get(0);
return null; return null;
} }
...@@ -285,4 +284,14 @@ public class ReaderBean implements ReaderBeanLocal { ...@@ -285,4 +284,14 @@ public class ReaderBean implements ReaderBeanLocal {
} }
@Override
public List<ReaderEvent> getLastReaderEvents() {
List<ReaderEvent> ret = new ArrayList<>();
for (Reader r : readerfacade.findAllForEvent())
{
ret.addAll(readerEventFacade.findLastEvents(r, 1));
}
return ret;
}
} }
...@@ -9,9 +9,9 @@ import javax.persistence.criteria.CriteriaBuilder; ...@@ -9,9 +9,9 @@ import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
import fi.codecrew.moya.model.ReaderEvent_;
import fi.codecrew.moya.model.Reader; import fi.codecrew.moya.model.Reader;
import fi.codecrew.moya.model.ReaderEvent; import fi.codecrew.moya.model.ReaderEvent;
import fi.codecrew.moya.model.ReaderEvent_;
@Stateless @Stateless
@LocalBean @LocalBean
...@@ -34,4 +34,5 @@ public class ReaderEventFacade extends IntegerPkGenericFacade<ReaderEvent> { ...@@ -34,4 +34,5 @@ public class ReaderEventFacade extends IntegerPkGenericFacade<ReaderEvent> {
q.setMaxResults(count); q.setMaxResults(count);
return q.getResultList(); return q.getResultList();
} }
} }
...@@ -39,4 +39,6 @@ public interface ReaderBeanLocal { ...@@ -39,4 +39,6 @@ public interface ReaderBeanLocal {
ReaderEvent getLastReaderEvent(Integer readerId); ReaderEvent getLastReaderEvent(Integer readerId);
List<ReaderEvent> getLastReaderEvents();
} }
package fi.codecrew.moya.rest;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import fi.codecrew.moya.beans.ReaderBeanLocal;
import fi.codecrew.moya.rest.pojo.ReaderEventRestPojo;
import fi.codecrew.moya.rest.pojo.ReaderRestPojo;
@RequestScoped
@Path("/reader")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON })
public class ReaderRestView {
@EJB
private ReaderBeanLocal readerbean;
@GET
@Path("/List")
public List<ReaderRestPojo> getReaderList()
{
return ReaderRestPojo.parse(readerbean.getReaders());
}
@GET
@Path("/LastEventusers")
public List<ReaderEventRestPojo> getLastEventusers()
{
return ReaderEventRestPojo.parse(readerbean.getLastReaderEvents());
}
}
package fi.codecrew.moya.rest.pojo;
import javax.xml.bind.annotation.XmlElement;
import fi.codecrew.moya.model.EventUser;
public class EventUserRestPojo {
private EventUser user;
public EventUserRestPojo() {
}
public EventUserRestPojo(EventUser user) {
this.user = user;
}
@XmlElement(name = "eventuserId")
public Integer getEventuserId()
{
return user.getId();
}
@XmlElement(name = "userId")
public Integer getuserId()
{
return user.getUser().getId();
}
@XmlElement(name = "firstname")
public String getFirstname()
{
return user.getUser().getFirstnames();
}
@XmlElement(name = "lastname")
public String getLastname()
{
return user.getUser().getLastname();
}
}
package fi.codecrew.moya.rest.pojo;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import fi.codecrew.moya.model.ReaderEvent;
public class ReaderEventRestPojo {
private ReaderEvent event;
private EventUserRestPojo eventUser;
public ReaderEventRestPojo() {
}
public ReaderEventRestPojo(ReaderEvent re) {
this.event = re;
if (re != null && re.getPrintedCard() != null && re.getPrintedCard().getUser() != null) {
eventUser = new EventUserRestPojo(re.getPrintedCard().getUser());
}
}
@XmlElement(name = "eventuser")
public EventUserRestPojo getEventuser() {
return eventUser;
}
@XmlElement(name = "readerEventId")
public Integer getEventId() {
return event.getId();
}
@XmlElement(name = "readerEventTime")
public Date getEventTime() {
return event.getUpdatetime();
}
@XmlElement(name = "readerId")
public Integer getReaderId() {
return event.getReader().getId();
}
public static List<ReaderEventRestPojo> parse(List<ReaderEvent> readers) {
List<ReaderEventRestPojo> ret = new ArrayList<>();
for (ReaderEvent re : readers)
{
ret.add(new ReaderEventRestPojo(re));
}
return ret;
}
}
package fi.codecrew.moya.rest.pojo;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import fi.codecrew.moya.model.Reader;
import fi.codecrew.moya.model.ReaderType;
public class ReaderRestPojo {
private Reader reader;
@XmlElement(name = "readerId")
public Integer getId() {
return reader.getId();
}
@XmlElement(name = "identification")
public String getIdent() {
return reader.getIdentification();
}
@XmlElement(name = "description")
public String getDescr() {
return reader.getDescription();
}
@XmlElement(name = "readerType")
public ReaderType getType() {
return reader.getType();
}
public ReaderRestPojo() {
this.reader = null;
}
public ReaderRestPojo(Reader r) {
this.reader = r;
}
public static List<ReaderRestPojo> parse(List<Reader> readers) {
ArrayList<ReaderRestPojo> ret = new ArrayList<>();
for (Reader r : readers) {
ret.add(new ReaderRestPojo(r));
}
return ret;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!