package com.example.cosmos_serversb.resources; import com.example.cosmos_serversb.entities.Group; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.hibernate.Session; import org.springframework.stereotype.Component; import javax.ws.rs.*; import com.example.cosmos_serversb.models.*; import java.io.IOException; @Component @Path("/groups") public class GroupsRest { @GET public String getGroupsListByUid(@QueryParam("uId") String uId, @QueryParam("token") String token) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().getGroupsListByUid(uId)); SessionManager.getInstance().closeSession(); return json; } @POST public String createGroup(@FormParam("name") String name, @FormParam("uId") String uId, @FormParam("token") String token) throws IOException { //グループの作成 SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().createGroup(name, uId)); SessionManager.getInstance().closeSession(); //グループにメンバーの追加 SessionManager.getInstance().getSession(); Group group = mapper.readValue(json, Group.class); // Groups.addMemberById(group.getgId(), uId);//どうやってこのgIdを取得する? Groups.addMemberWhenCreateGroup(group, uId); SessionManager.getInstance().closeSession(); return json; } @Path("/{gId}") @GET public String getGroupByGid(@PathParam("gId") String gId, @QueryParam("token") String token) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().getGroupByGid(gId)); SessionManager.getInstance().closeSession(); return json; } @Path("/{gId}") @DELETE public String deleteGroup(@PathParam("gId") String gId, @FormParam("token") String token) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().deleteGroup(gId)); SessionManager.getInstance().closeSession(); return json; } @Path("/{gId}/members") @GET public String getGroupMembersListByGid(@PathParam("gId") String gId, @QueryParam("token") String token) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().getMembersListByGid(gId)); SessionManager.getInstance().closeSession(); return json; } @Path("/{gId}/members") @POST public String addMember(@PathParam("gId") String gId, @FormParam("uId") String uId, @FormParam("token") String token) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().addMember(gId, uId)); SessionManager.getInstance().closeSession(); return json; } @Path("/{gId}/members") @DELETE public String deleteMember(@PathParam("gId") String gId, @FormParam("uId") String uId, @FormParam("token") String token) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().deleteMember(gId, uId)); SessionManager.getInstance().closeSession(); 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") @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{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().addRequests(gId, uId, product, deadline, location)); SessionManager.getInstance().closeSession(); return json; } @Path("{gId}/requests/{rId}") @GET public String getRequestsDetailByGidAndRid(@PathParam("gId") String gId, @PathParam("rId") String rId, @QueryParam("token") String token) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().getRequestDetailByGidAndRid(gId, rId)); SessionManager.getInstance().closeSession(); return json; } @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{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().updateRequest(gId, rId, uId, product, deadline, location, done)); SessionManager.getInstance().closeSession(); return json; } @Path("{gId}/requests/{rId}") @DELETE public String deleteRequest(@PathParam("gId") String gId, @PathParam("rId") String rId, @FormParam("token") String token) throws JsonProcessingException{ SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().deleteRequest(gId, rId)); SessionManager.getInstance().closeSession(); return json; } }