package com.example.cosmos_serversb.resources; import com.fasterxml.jackson.annotation.JsonIgnore; 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("/users") public class UsersRest { public interface RemoveuIdAndUri { @JsonIgnore String getuId(); @JsonIgnore String getUri(); } public interface RemoveNameAndIconUri { @JsonIgnore String getName(); @JsonIgnore String getIconUri(); } @POST public String createUsers(@FormParam("name") String name, @FormParam("pw") String pw, @FormParam("iconImage") String iconImage) throws JsonProcessingException { SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Users.getInstance().createUser(name, pw, iconImage)); SessionManager.getInstance().closeSession(); return json; } @Path("/{uId}") @GET public String getUsersInfo(@PathParam("uId") String uId, @QueryParam("token") String token) throws JsonProcessingException { SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Users.getInstance().getUserById(uId)); mapper.addMixIn(json.getClass(),RemoveuIdAndUri.class); SessionManager.getInstance().closeSession(); return json; } @Path("/{uId}") @PUT public String setUsersInfo(@PathParam("uId") String uId, @FormParam("token") String token, @FormParam("name") String name, @FormParam("pw") String pw, @FormParam("iconImage") String iconImage) throws JsonProcessingException { SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Users.getInstance().setUser(uId, name, pw, iconImage)); mapper.addMixIn(json.getClass(),RemoveNameAndIconUri.class); SessionManager.getInstance().closeSession(); return json; } @Path("/{uId}") @DELETE public String deleteUsersInfo(@PathParam("uId") String uId, @FormParam("token") String token) throws JsonProcessingException { SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Users.getInstance().deleteUser(uId)); SessionManager.getInstance().closeSession(); return json; } @Path("/{uId}/login") @POST public String login(@PathParam("uId") String uId, @FormParam("pw") String pw) throws JsonProcessingException { SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Users.getInstance().login(uId,pw)); SessionManager.getInstance().closeSession(); return json; } @Path("/{uId}/logout") @DELETE public String logout(@PathParam("uId") String uId, @FormParam("token") String token) throws JsonProcessingException { SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Users.getInstance().logout(uId,token)); SessionManager.getInstance().closeSession(); return json; } }