Commit c0c1f505 by Juho Juopperi

/reader/v4 rest api that returns the code in reader events

1 parent 9991e39a
package fi.codecrew.moya.rest.pojo.reader.v4;
import fi.codecrew.moya.rest.pojo.userinfo.v1.EventUserRestPojo;
import fi.codecrew.moya.rest.pojo.userinfo.v3.PrintedCardRestPojoV3;
import javax.xml.bind.annotation.XmlElement;
import java.util.Date;
/**
* Version 4 has the `code` field containing the code read by the reader.
*/
public class ReaderEventRestPojoV4 {
private EventUserRestPojo eventUser;
private PrintedCardRestPojoV3 printedCard;
private Integer readerEventId;
private Date readerEventTime;
private Integer readerId;
private Integer printedCardId;
private String printedCardState;
private String code; // New in v4
public ReaderEventRestPojoV4() {
}
@XmlElement(name = "eventuser", nillable = true)
public EventUserRestPojo getEventuser() {
return eventUser;
}
@XmlElement(name = "readerEventId", nillable = false)
public Integer getEventId() {
return readerEventId;
}
@XmlElement(name = "readerEventTime", nillable = true)
public Date getReaderEventTime() {
return readerEventTime;
}
public void setReaderEventTime(Date readerEventTime) {
this.readerEventTime = readerEventTime;
}
@XmlElement(name = "readerId", nillable = false)
public Integer getReaderId() {
return readerId;
}
public void setReaderId(Integer readerId) {
this.readerId = readerId;
}
@XmlElement(name = "printedCardId", nillable = true)
public Integer getPrintedCardId() {
return printedCardId;
}
public void setPrintedCardId(Integer printedCardId) {
this.printedCardId = printedCardId;
}
@XmlElement(name = "printedCardState", nillable = true)
public String getPrintedCardState() {
return printedCardState;
}
public void setPrintedCardState(String printedCardState) {
this.printedCardState = printedCardState;
}
public PrintedCardRestPojoV3 getPrintedCard() {
return printedCard;
}
public void setPrintedCard(PrintedCardRestPojoV3 printedCard) {
this.printedCard = printedCard;
}
public EventUserRestPojo getEventUser() {
return eventUser;
}
public void setEventUser(EventUserRestPojo eventUser) {
this.eventUser = eventUser;
}
public Integer getReaderEventId() {
return readerEventId;
}
public void setReaderEventId(Integer readerEventId) {
this.readerEventId = readerEventId;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
/*
* Copyright Codecrew Ry
*
* All rights reserved.
*
* This license applies to any software containing a notice placed by the
* copyright holder. Such software is herein referred to as the Software.
* This license covers modification, distribution and use of the Software.
*
* Any distribution and use in source and binary forms, with or without
* modification is not permitted without explicit written permission from the
* copyright owner.
*
* A non-exclusive royalty-free right is granted to the copyright owner of the
* Software to use, modify and distribute all modifications to the Software in
* future versions of the Software.
*
*/
package fi.codecrew.moya.rest.pojo.reader.v4;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;
@XmlRootElement
public class ReaderEventRestRootV4 {
private List<ReaderEventRestPojoV4> readerEvents;
public ReaderEventRestRootV4() {
}
public ReaderEventRestRootV4(List<ReaderEventRestPojoV4> parsed) {
setReaderEvents(parsed);
}
public List<ReaderEventRestPojoV4> getReaderEvents() {
return readerEvents;
}
public void setReaderEvents(List<ReaderEventRestPojoV4> readerEvents) {
this.readerEvents = readerEvents;
}
}
package fi.codecrew.moya.rest.reader.v4;
import fi.codecrew.moya.model.ReaderEvent;
import fi.codecrew.moya.rest.PojoUtils;
import fi.codecrew.moya.rest.pojo.reader.v4.ReaderEventRestPojoV4;
import java.util.ArrayList;
import java.util.List;
public class ReaderPojoUtilsV4 {
public static ReaderEventRestPojoV4 initReaderEventRestPojo(ReaderEvent event) {
ReaderEventRestPojoV4 ret = new ReaderEventRestPojoV4();
if (event.getPrintedCard() != null) {
if (event.getPrintedCard().getUser() != null) {
ret.setEventUser(PojoUtils.initEventUserRestPojo(event.getPrintedCard().getUser()));
}
} else if (event.getUser() != null) {
ret.setEventUser(PojoUtils.initEventUserRestPojo(event.getUser()));
}
ret.setReaderEventId(event.getId());
ret.setReaderEventTime(event.getUpdatetime());
ret.setReaderId(event.getReader().getId());
ret.setCode(event.getValue()); // New in API v4
if (event.getPrintedCard() != null) {
ret.setPrintedCardId(event.getPrintedCard().getId());
}
if (event.getPrintedCard() != null) {
ret.setPrintedCardState(event.getPrintedCard().getCardState().name());
}
return ret;
}
public static List<ReaderEventRestPojoV4> parseReaderEvents(List<ReaderEvent> readers) {
List<ReaderEventRestPojoV4> ret = new ArrayList<>();
for (ReaderEvent re : readers) {
ret.add(initReaderEventRestPojo(re));
}
return ret;
}
}
/*
* Copyright Codecrew Ry
*
* All rights reserved.
*
* This license applies to any software containing a notice placed by the
* copyright holder. Such software is herein referred to as the Software.
* This license covers modification, distribution and use of the Software.
*
* Any distribution and use in source and binary forms, with or without
* modification is not permitted without explicit written permission from the
* copyright owner.
*
* A non-exclusive royalty-free right is granted to the copyright owner of the
* Software to use, modify and distribute all modifications to the Software in
* future versions of the Software.
*
*/
package fi.codecrew.moya.rest.reader.v4;
import fi.codecrew.moya.beans.ReaderBeanLocal;
import fi.codecrew.moya.model.ReaderEvent;
import fi.codecrew.moya.rest.PojoUtils;
import fi.codecrew.moya.rest.pojo.reader.v1.ReaderRestRoot;
import fi.codecrew.moya.rest.pojo.reader.v4.ReaderEventRestRootV4;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.List;
import static fi.codecrew.moya.rest.reader.v4.ReaderPojoUtilsV4.parseReaderEvents;
@RequestScoped
@Path("/reader/v4")
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Produces({MediaType.APPLICATION_JSON + "; charset=UTF-8"})
public class ReaderRestViewV4 {
@EJB
private ReaderBeanLocal readerbean;
@GET
@Path("/List")
public ReaderRestRoot getReaderList() {
return new ReaderRestRoot(PojoUtils.parseReaders(readerbean.getReaders()));
}
/**
* Returns events after the designated eventid. If eventid == 0 return last
* 20, eventid < 0 return all
*/
@GET
@Path("/readerevents/{readerId}/{eventId}")
public ReaderEventRestRootV4 getReaderevents(@PathParam("readerId") Integer readerId, @PathParam("eventId") Integer eventId) {
List<ReaderEvent> events = null;
if (eventId != null && eventId > 0) {
events = readerbean.getReaderEventsAfterEvent(readerId, eventId);
} else {
int count = 20;
if (eventId == null || eventId == 0)
count = 0;
events = readerbean.getReaderEvents(readerId, count);
}
return new ReaderEventRestRootV4(parseReaderEvents(events));
}
@GET
@Path("/createevent/{reader}/{code}/{hash}")
public Response createReaderEvent(@PathParam("reader") String readerName, @PathParam("code") String readerCode, @PathParam("hash") String hash) {
readerbean.checkCode(readerName, readerCode);
return Response.ok().build();
}
@POST
@Path("/createevent/{reader}/{code}")
public Response createReaderEvent(@PathParam("reader") String readerName, @PathParam("code") String readerCode) {
ReaderEvent readerEvent = readerbean.checkCode(readerName, readerCode);
return Response.ok(ReaderPojoUtilsV4.initReaderEventRestPojo(readerEvent)).build();
}
@GET
@Path("/LastEventusers")
public ReaderEventRestRootV4 getLastEventusers() {
return new ReaderEventRestRootV4(ReaderPojoUtilsV4.parseReaderEvents(readerbean.getLastReaderEvents()));
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!