diff --git a/src/main/java/com/example/cosmos_serversb/jsons/GroupJson.java b/src/main/java/com/example/cosmos_serversb/jsons/GroupJson.java new file mode 100644 index 0000000..9557209 --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/jsons/GroupJson.java @@ -0,0 +1,90 @@ +//このクラスは仮です +package com.example.cosmos_serversb.jsons; + +import com.example.cosmos_serversb.entities.Group; +import com.example.cosmos_serversb.entities.Request; +import com.example.cosmos_serversb.entities.User; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +public class GroupJson { + private String gId; + private String uri, name; + private Map members = new HashMap<>();//HashSetでいいのかな? + private Map requests = new HashMap<>(); + + public GroupJson(Group group){ + setgId(group.getgId()); + setUri(group.getUri()); + setName(group.getName()); + changeMembersMap(group.getMembers()); + changeRequestsMap(group.getRequests()); + } + + public String getgId() { + return gId; + } + + private void setgId(String gId) { + this.gId = gId; + } + + public String getUri() { + return uri; + } + + private void setUri(String uri){ + this.uri = uri; + } + + public String getUriByGid(String gId){ + return uri; + } + + private void setName(String name){ + this.name = name; + } + + public String getName(){ + return name; + } + + public String getNameByGid(String gId){ + return name; + } + + public Map getMembers() { + return members; + } + + public void setMembers(Map members) { + this.members = members; + } + + public Map getRequests() { + return requests; + } + + public void setRequests(Map requests) { + this.requests = requests; + } + + private void changeMembersMap(Set set){ + for ( User user : (Set) set ) { + members.put(user.getuId(), getUri()); + } + } + + private void changeRequestsMap(Set set){ + for ( Request request : (Set) set ) { + requests.put(request.getrId(), getUri()); + } + } + + + + +} + 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 864698f..cdfd10e 100644 --- a/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java +++ b/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java @@ -2,6 +2,7 @@ import com.example.cosmos_serversb.entities.Group; import com.example.cosmos_serversb.entities.User; +import com.example.cosmos_serversb.jsons.GroupJson; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.hibernate.Session; @@ -37,15 +38,15 @@ SessionManager.getInstance().getSession(); Groups.addMember(group.getgId(), uId); SessionManager.getInstance().closeSession(); - String json = mapper.writeValueAsString(group);//このJSONには、グループを作成したユーザの情報が含まれていません。 +// String json = mapper.writeValueAsString(group);//このJSONには、グループを作成したユーザの情報が含まれていません。 //以下が思うように動かない。 -// Session session = SessionManager.getInstance().getSession(); + Session session = SessionManager.getInstance().getSession(); // Group editedGroup = (Group) session.load(Group.class, group.getgId());//editedGroupの値がおかしい? // String json = mapper.writeValueAsString(editedGroup); -// Group tmpGroup = new Group(session.load(Group.class, group.getgId())); -// String json = mapper.writeValueAsString( tmpGroup ); -// SessionManager.getInstance().closeSession(); + GroupJson groupJson = new GroupJson(session.load(Group.class, group.getgId())); + String json = mapper.writeValueAsString( groupJson ); + SessionManager.getInstance().closeSession(); return json; }