Commit 825f9730 by Juho Juopperi

Merge branch 'userreservation' into 'master'

User reservations with code

Create rest api for fetching user reservations with code.
Some minor changes to rest objects.

See merge request !211
2 parents 5e22825c 88144614
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>moya-restpojo</artifactId> <artifactId>moya-restpojo</artifactId>
<groupId>fi.codecrew.moya</groupId> <groupId>fi.codecrew.moya</groupId>
<version>1.0.2</version> <version>1.0.5</version>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
......
...@@ -4,12 +4,16 @@ import javax.xml.bind.annotation.XmlElement; ...@@ -4,12 +4,16 @@ import javax.xml.bind.annotation.XmlElement;
public class UserReservationPlacePojo { public class UserReservationPlacePojo {
@XmlElement @XmlElement(name = "placeid")
private Integer placeid; private Integer placeid;
@XmlElement @XmlElement(name = "placename")
private String placename; private String placename;
@XmlElement @XmlElement(name = "placegiven")
private boolean placegiven; private boolean placegiven;
@XmlElement(name = "productid")
private Integer productId;
@XmlElement(name = "productname")
private String productName;
public String getPlacename() { public String getPlacename() {
return placename; return placename;
...@@ -35,4 +39,20 @@ public class UserReservationPlacePojo { ...@@ -35,4 +39,20 @@ public class UserReservationPlacePojo {
this.placeid = placeid; this.placeid = placeid;
} }
public Integer getProductId() {
return productId;
}
public void setProductId(Integer productId) {
this.productId = productId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
} }
...@@ -26,6 +26,7 @@ import javax.xml.bind.annotation.XmlRootElement; ...@@ -26,6 +26,7 @@ import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement() @XmlRootElement()
public class UserReservationRoot { public class UserReservationRoot {
private EventUserRestPojo user;
private List<UserReservationPlacePojo> reservations = new ArrayList<UserReservationPlacePojo>(); private List<UserReservationPlacePojo> reservations = new ArrayList<UserReservationPlacePojo>();
public UserReservationRoot() { public UserReservationRoot() {
...@@ -40,6 +41,12 @@ public class UserReservationRoot { ...@@ -40,6 +41,12 @@ public class UserReservationRoot {
this.reservations = reservations; this.reservations = reservations;
} }
public EventUserRestPojo getUser() {
return user;
}
public void setUser(EventUserRestPojo user) {
this.user = user;
}
} }
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<dependency> <dependency>
<groupId>fi.codecrew.moya</groupId> <groupId>fi.codecrew.moya</groupId>
<artifactId>moya-restpojo</artifactId> <artifactId>moya-restpojo</artifactId>
<version>1.0.2</version> <version>1.0.5</version>
</dependency> </dependency>
</dependencies> </dependencies>
......
...@@ -8,6 +8,7 @@ import javax.xml.bind.annotation.XmlElement; ...@@ -8,6 +8,7 @@ import javax.xml.bind.annotation.XmlElement;
import fi.codecrew.moya.model.EventMap; import fi.codecrew.moya.model.EventMap;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.GroupMembership;
import fi.codecrew.moya.model.Place; import fi.codecrew.moya.model.Place;
import fi.codecrew.moya.model.PrintedCard; import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.model.Product; import fi.codecrew.moya.model.Product;
...@@ -27,6 +28,7 @@ import fi.codecrew.moya.rest.pojo.userinfo.v1.CardRoot; ...@@ -27,6 +28,7 @@ import fi.codecrew.moya.rest.pojo.userinfo.v1.CardRoot;
import fi.codecrew.moya.rest.pojo.userinfo.v1.EventUserRestPojo; import fi.codecrew.moya.rest.pojo.userinfo.v1.EventUserRestPojo;
import fi.codecrew.moya.rest.pojo.userinfo.v1.PrintedCardRestPojo; import fi.codecrew.moya.rest.pojo.userinfo.v1.PrintedCardRestPojo;
import fi.codecrew.moya.rest.pojo.userinfo.v1.SimpleEventuserRoot; import fi.codecrew.moya.rest.pojo.userinfo.v1.SimpleEventuserRoot;
import fi.codecrew.moya.rest.pojo.userinfo.v1.UserReservationPlacePojo;
public class PojoUtils { public class PojoUtils {
public static EventUserRestPojo initEventUserRestPojo(EventUser user) public static EventUserRestPojo initEventUserRestPojo(EventUser user)
...@@ -275,4 +277,18 @@ public class PojoUtils { ...@@ -275,4 +277,18 @@ public class PojoUtils {
ret.setHeight(map.getHeight()); ret.setHeight(map.getHeight());
return ret; return ret;
} }
public static UserReservationPlacePojo initUserReservationPlace(GroupMembership g) {
UserReservationPlacePojo ur = new UserReservationPlacePojo();
ur.setPlacegiven(g.getEnteredEvent() != null);
Place place = g.getPlaceReservation();
if (place != null) {
ur.setPlaceid(place.getId());
ur.setPlacename(place.getName());
ur.setProductId(place.getProduct().getId());
ur.setProductName(place.getProduct().getName());
}
return ur;
}
} }
...@@ -48,11 +48,15 @@ import com.wordnik.swagger.annotations.ApiOperation; ...@@ -48,11 +48,15 @@ import com.wordnik.swagger.annotations.ApiOperation;
import com.wordnik.swagger.annotations.ApiParam; import com.wordnik.swagger.annotations.ApiParam;
import fi.codecrew.moya.beans.CardTemplateBeanLocal; import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.PermissionBeanLocal; import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.beans.PlaceGroupBeanLocal; import fi.codecrew.moya.beans.PlaceGroupBeanLocal;
import fi.codecrew.moya.beans.ReaderBeanLocal;
import fi.codecrew.moya.beans.TicketBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal; import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.GroupMembership; import fi.codecrew.moya.model.GroupMembership;
import fi.codecrew.moya.model.ReaderEvent;
import fi.codecrew.moya.rest.pojo.userinfo.v1.EventUserRestPojo; import fi.codecrew.moya.rest.pojo.userinfo.v1.EventUserRestPojo;
import fi.codecrew.moya.rest.pojo.userinfo.v1.PrintedCardRestPojo; import fi.codecrew.moya.rest.pojo.userinfo.v1.PrintedCardRestPojo;
import fi.codecrew.moya.rest.pojo.userinfo.v1.SimpleEventuserRoot; import fi.codecrew.moya.rest.pojo.userinfo.v1.SimpleEventuserRoot;
...@@ -86,19 +90,47 @@ public class UserRestView { ...@@ -86,19 +90,47 @@ public class UserRestView {
@EJB @EJB
private PlaceGroupBeanLocal placegroupbean; private PlaceGroupBeanLocal placegroupbean;
@EJB
private ReaderBeanLocal readerbean;
@EJB
private TicketBeanLocal ticketbean;
@GET
@Path("/reservationswithcode/{code}")
public Response getPlacesWithCode(@PathParam("code") String code) {
EventUser curruser = permbean.getCurrentUser();
ReaderEvent revent = readerbean.checkCode("restapi: " + curruser.getLogin(), code);
if (revent != null && revent.getUser() != null) {
EventUser eu = revent.getUser();
List<GroupMembership> gms = ticketbean.findMembershipPrintlistForUser(eu);
UserReservationRoot ret = new UserReservationRoot();
ret.setUser(PojoUtils.initEventUserRestPojo(eu));
for (GroupMembership g : gms) {
ret.getReservations().add(PojoUtils.initUserReservationPlace(g));
}
return Response.ok(ret).build();
}
return Response.status(Status.NOT_FOUND).build();
}
@GET @GET
@Path("/{userid}/reservations") @Path("/{userid}/reservations")
public Response usersPlaces(@QueryParam("userid") Integer userid) { public Response usersPlaces(@PathParam("userid") Integer userid) {
EventUser eu = userbean.findByUserId(userid, false); EventUser eu = userbean.findByUserId(userid, false);
if (eu != null) { if (eu != null) {
List<GroupMembership> gms = placegroupbean.getMemberships(eu);
List<GroupMembership> gms = ticketbean.findMembershipPrintlistForUser(eu);
UserReservationRoot ret = new UserReservationRoot(); UserReservationRoot ret = new UserReservationRoot();
ret.setUser(PojoUtils.initEventUserRestPojo(eu));
for (GroupMembership g : gms) { for (GroupMembership g : gms) {
UserReservationPlacePojo ur = new UserReservationPlacePojo(); ret.getReservations().add(PojoUtils.initUserReservationPlace(g));
ur.setPlaceid(g.getPlaceReservation().getId());
ur.setPlacegiven(g.getEnteredEvent() != null);
ur.setPlacename(g.getPlaceReservation().getName());
ret.getReservations().add(ur);
} }
return Response.ok(ret).build(); return Response.ok(ret).build();
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!