diff --git a/src/main/java/com/example/cosmos_serversb/entities/Group.java b/src/main/java/com/example/cosmos_serversb/entities/Group.java index 7b34aaa..c900ac4 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/Group.java +++ b/src/main/java/com/example/cosmos_serversb/entities/Group.java @@ -70,13 +70,6 @@ requests.add(request); } - /* - public ArrayList getRequestsList(){ - ArrayList list = new ArrayList(getRequests()); - return list; - } - */ - public void setMembers(Set members) { this.members = members; } diff --git a/src/main/java/com/example/cosmos_serversb/jsons/RequestJson.java b/src/main/java/com/example/cosmos_serversb/jsons/RequestJson.java new file mode 100644 index 0000000..17ac3c5 --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/jsons/RequestJson.java @@ -0,0 +1,103 @@ +package com.example.cosmos_serversb.jsons; + +import com.example.cosmos_serversb.entities.Request; +import com.example.cosmos_serversb.entities.User; +import com.example.cosmos_serversb.models.Users; + +import java.util.Date; + +public class RequestJson { + private String rId; + private String uri, product; + private UserJsonForRequests Issuer; + private Date date, deadline; + private int location;// YahooローカルサーチAPIの業種コード + private boolean done = false; + + public RequestJson(){ + + } + + public RequestJson(Request request){ + setrId(request.getrId()); + setUri(request.getrId()); + setDate(request.getDate()); + SetIssuerByUid(request.getIssuerUid()); + setProduct(request.getProduct()); + setDeadline(request.getDeadline()); + setLocation(request.getLocation()); + this.done = false; + } + + private void setrId(String rId){ + this.rId = rId; + } + + public String getrId(){ + return rId; + } + + private void setUri(String uri){ + this.uri = uri; + } + + public String getUri(){ + return uri; + } + + private void setDate(Date date){ + this.date = date; + } + + public Date getDate() { + return date; + } + + public UserJsonForRequests getIssuer(){ + return Issuer; + } + + private void setIssuer(UserJsonForRequests user){ + this.Issuer = user; + } + + private void SetIssuerByUid(String uId){ + this.Issuer = new UserJsonForRequests(Users.getInstance().getUserById(uId)); + } + + public String getProduct() { + return product; + } + + public void setProduct(String product) { + this.product = product; + } + + public Date getDeadline() { + return deadline; + } + + public void setDeadline(Date deadline) { + this.deadline = deadline; + } + + public int getLocation() { + return location; + } + + public void setLocation(int location) { + this.location = location; + } + + public boolean isDone() { + return done; + } + + public boolean getDone() { + return done; + } + + public void setDone(boolean done) { + this.done = done; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/cosmos_serversb/jsons/RequestsJson.java b/src/main/java/com/example/cosmos_serversb/jsons/RequestsJson.java new file mode 100644 index 0000000..44e2f21 --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/jsons/RequestsJson.java @@ -0,0 +1,31 @@ +package com.example.cosmos_serversb.jsons; + +import com.example.cosmos_serversb.entities.Request; + +import java.util.ArrayList; +import java.util.Set; + + +public class RequestsJson { + public ArrayList requests = new ArrayList<>(); + + public RequestsJson(Set set, int quantity){ + changeRequests(set, quantity); + } + + public ArrayList getRequests(){ + return requests; + } + + public void setRequests(ArrayList requests) { + this.requests = requests; + } + + private void changeRequests(Set set, int quantity){ + if(quantity <= 0) return; + for( Request request : (Set) set ) { + requests.add(new RequestJson(request)); + if(requests.size() == quantity) break; + } + } +} diff --git a/src/main/java/com/example/cosmos_serversb/jsons/UserJsonForRequests.java b/src/main/java/com/example/cosmos_serversb/jsons/UserJsonForRequests.java new file mode 100644 index 0000000..0c9fe54 --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/jsons/UserJsonForRequests.java @@ -0,0 +1,74 @@ +package com.example.cosmos_serversb.jsons; + +import com.example.cosmos_serversb.entities.Group; +import com.example.cosmos_serversb.entities.User; + +import java.util.HashSet; +import java.util.Set; + +public class UserJsonForRequests { + public String uId, uri, name, iconUri; + public boolean login = true; + public String token; + + public UserJsonForRequests() { + + } + public UserJsonForRequests(User user) { + setuId(user.getuId()); + setUri(user.getUri()); + setName(user.getName()); + setIconUri(user.getIconUri()); + setToken(user.getToken()); + this.login = true; + } + + public String getuId() { + return uId; + } + + public void setuId(String uId) { + this.uId = uId; + } + + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIconUri() { + return iconUri; + } + + public void setIconUri(String iconUri) { + this.iconUri = iconUri; + } + + public boolean getLogin() { + return login; + } + + public void setLogin(boolean login) { + this.login = login; + } + + public void setToken(String token) { + this.token = token; + } + + public String getToken() { + return token; + } + +} diff --git a/src/main/java/com/example/cosmos_serversb/models/Groups.java b/src/main/java/com/example/cosmos_serversb/models/Groups.java index fcaf8c4..28f67bf 100644 --- a/src/main/java/com/example/cosmos_serversb/models/Groups.java +++ b/src/main/java/com/example/cosmos_serversb/models/Groups.java @@ -67,7 +67,6 @@ return editGroup; } } - return null; } @@ -103,23 +102,55 @@ return null; } - public static HashMap getRequestsListByGid(String gId){ + /* + public static Group getGroupByGid(String gId){ + Group editGroup; + Session session = SessionManager.getInstance().getSession(); + List groupResult = session.createQuery( "from Group" ).list(); + for ( Group group : (List) groupResult ) { + editGroup = group; + if (editGroup.getgId().equals(gId)) { + return editGroup; + } + } return null; } - public static Request addRequests(String gId, String uId, String product, String deadline, int location){ + */ + + public static RequestsJson getRequestsListByGid(String gId, boolean detail, int quantity){ + Session session = SessionManager.getInstance().getSession(); + Group group = session.get(Group.class, gId); + if(group != null) { + RequestsJson requestsJson = new RequestsJson(group.getRequests(), quantity); + return requestsJson; + } + //例外処理 + return null; + } + + public static Request addRequests(String gId, String uId, String product, Date deadline, int location){ //テスト用 String rId = getInstance().createRId(); String uri = baseURI + AppName + "/groups/" + gId + "/requests/" + rId; - Request testRequest = new Request(rId, uri, new Date(1999,01,01), uId, product, new Date(1999,12,01), 999); - return testRequest; + Request request = new Request(rId, uri, new Date(1999,01,01), uId, product, deadline, location); + + Session session = SessionManager.getInstance().getSession(); + Group editGroup = session.get(Group.class, gId); + if(editGroup != null) { + editGroup.addRequests(request); + session.update(editGroup); + return request; + } + //例外処理 + return null; } public static Request getRequestDetailByGidAndRid(String gId, String rId){ return null; } - public static Request updateRequest(String gId, String rId, String uId, String product, String deadline, int location, boolean done){ + public static Request updateRequest(String gId, String rId, String uId, String product, Date deadline, int location, boolean done){ //テスト用 Request testRequest = new Request(rId, "http://test.com", new Date(1999,01,01), uId, product, new Date(1999,12,01), 999); diff --git a/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java b/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java index 70f42fd..bd30720 100644 --- a/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java +++ b/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java @@ -13,6 +13,7 @@ import com.example.cosmos_serversb.models.*; import java.io.IOException; +import java.util.Date; @Component @Path("/groups") @@ -100,19 +101,29 @@ return json; } +// @Path("/{gId}/requests") +// @GET +// public String getRequestsListByGid(@PathParam("gId") String gId, @QueryParam("token") String token) throws JsonProcessingException{ +// SessionManager.getInstance().getSession(); +// ObjectMapper mapper = new ObjectMapper(); +// String json = mapper.writeValueAsString(Groups.getInstance().getRequestsListByGid(gId)); +// SessionManager.getInstance().closeSession(); +// return json; +// } + @Path("/{gId}/requests") @GET - public String getRequestsListByGid(@PathParam("gId") String gId, @QueryParam("token") String token) throws JsonProcessingException{ + public String getRequestsListByGid(@PathParam("gId") String gId, @QueryParam("token") String token, @QueryParam("detail") boolean detail, @QueryParam("quantity") int quantity) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); - String json = mapper.writeValueAsString(Groups.getInstance().getRequestsListByGid(gId)); + String json = mapper.writeValueAsString(Groups.getInstance().getRequestsListByGid(gId, detail, quantity)); SessionManager.getInstance().closeSession(); return json; } @Path("/{gId}/requests") @POST - public String addRequests(@PathParam("gId") String gId, @FormParam("uId") String uId, @FormParam("product") String product, @FormParam("deadline") String deadline, @FormParam("location") int location, @FormParam("token") String token) throws JsonProcessingException{ + public String addRequests(@PathParam("gId") String gId, @FormParam("uId") String uId, @FormParam("product") String product, @FormParam("deadline") Date deadline, @FormParam("location") int location, @FormParam("token") String token) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().addRequests(gId, uId, product, deadline, location)); @@ -132,7 +143,7 @@ @Path("{gId}/requests/{rId}") @PUT - public String updateRequest(@PathParam("gId") String gId, @PathParam("rId") String rId, @FormParam("uId") String uId, @FormParam("product") String product, @FormParam("deadline") String deadline, @FormParam("location") int location, @FormParam("done") boolean done, @FormParam("token") String token) throws JsonProcessingException{ + public String updateRequest(@PathParam("gId") String gId, @PathParam("rId") String rId, @FormParam("uId") String uId, @FormParam("product") String product, @FormParam("deadline") Date deadline, @FormParam("location") int location, @FormParam("done") boolean done, @FormParam("token") String token) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().updateRequest(gId, rId, uId, product, deadline, location, done)); diff --git a/src/main/resources/Request.hbm.xml b/src/main/resources/Request.hbm.xml index 010d45a..2d3fc7e 100644 --- a/src/main/resources/Request.hbm.xml +++ b/src/main/resources/Request.hbm.xml @@ -16,10 +16,10 @@ - + - +