package com.example.cosmos_serversb.resources; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Component; import javax.ws.rs.*; import com.example.cosmos_serversb.models.*; @Component @Path("/groups") public class GroupsRest { @GET public String getGroupsListByUid(@QueryParam("uId") String uId, @QueryParam("token") String token) throws JsonProcessingException{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().getGroupsListByUid(uId)); return json; } @POST public String createGroup(@FormParam("name") String name, @FormParam("uId") String uId, @FormParam("token") String token) throws JsonProcessingException{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().createGroup(name, uId)); return json; } @Path("/{gId}") @GET public String getGroupByGid(@PathParam("gId") String gId, @QueryParam("token") String token) throws JsonProcessingException{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().getGroupByGid(gId)); return json; } @Path("/{gId}") @DELETE public String deleteGroup(@PathParam("gId") String gId, @FormParam("token") String token) throws JsonProcessingException{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().deleteGroup(gId)); return json; } @Path("/{gId}/members") @GET public String getGroupMembersListByGid(@PathParam("gId") String gId, @QueryParam("token") String token) throws JsonProcessingException{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().getMembersListByGid(gId)); return json; } @Path("/{gId}/members") @POST public String addMember(@PathParam("gId") String gId, @FormParam("uId") String uId, @FormParam("token") String token) throws JsonProcessingException{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().addMember(gId, uId)); return json; } @Path("/{gId}/members") @DELETE public String deleteMember(@PathParam("gId") String gId, @FormParam("uId") String uId, @FormParam("token") String token) throws JsonProcessingException{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().deleteMember(gId, uId)); return json; } @Path("/{gId}/requests") @GET public String getRequestsListByGid(@PathParam("gId") String gId, @QueryParam("token") String token) throws JsonProcessingException{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().getRequestsListByGid(gId)); 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{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().addRequests(gId, uId, product, deadline, location)); return json; } @Path("{gId}/requests/{rId}") @GET public String getRequestsDetailByGidAndRid(@PathParam("gId") String gId, @PathParam("rId") String rId, @QueryParam("token") String token) throws JsonProcessingException{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().getRequestDetailByGidAndRid(gId, rId)); 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{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().updateRequest(gId, rId, uId, product, deadline, location, done)); return json; } @Path("{gId}/requests/{rId}") @DELETE public String deleteRequest(@PathParam("gId") String gId, @PathParam("rId") String rId, @FormParam("token") String token) throws JsonProcessingException{ ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().deleteRequest(gId, rId)); return json; } }