diff --git a/src/main/java/com/example/cosmos_serversb/jsons/GidUriJson.java b/src/main/java/com/example/cosmos_serversb/jsons/GidUriJson.java new file mode 100644 index 0000000..a7a9b12 --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/jsons/GidUriJson.java @@ -0,0 +1,34 @@ +package com.example.cosmos_serversb.jsons; + +import com.example.cosmos_serversb.entities.Group; + +public class GidUriJson { + private String gId; + private String uri; + + public GidUriJson(){ + + } + + public GidUriJson(Group group){ + setgId(group.getgId()); + setUri(group.getUri()); + } + + private void setgId(String gId) { + this.gId = gId; + } + + public String getgId() { + return gId; + } + + private void setUri(String uri){ + this.uri = uri; + } + + public String getUri(){ + return uri; + } + +} diff --git a/src/main/java/com/example/cosmos_serversb/jsons/GroupJson.java b/src/main/java/com/example/cosmos_serversb/jsons/GroupJson.java index 9557209..3d53ca4 100644 --- a/src/main/java/com/example/cosmos_serversb/jsons/GroupJson.java +++ b/src/main/java/com/example/cosmos_serversb/jsons/GroupJson.java @@ -1,10 +1,10 @@ -//このクラスは仮です 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.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -12,15 +12,15 @@ public class GroupJson { private String gId; private String uri, name; - private Map members = new HashMap<>();//HashSetでいいのかな? - private Map requests = new HashMap<>(); + private ArrayList members = new ArrayList<>(); + private ArrayList requests = new ArrayList<>(); public GroupJson(Group group){ setgId(group.getgId()); setUri(group.getUri()); setName(group.getName()); - changeMembersMap(group.getMembers()); - changeRequestsMap(group.getRequests()); + createUidUri(group.getMembers()); + createRidUri(group.getRequests()); } public String getgId() { @@ -55,36 +55,33 @@ return name; } - public Map getMembers() { + public ArrayList getMembers() { return members; } - public void setMembers(Map members) { + public void setMembers(ArrayList members) { this.members = members; } - public Map getRequests() { + public ArrayList getRequest() { return requests; } - public void setRequests(Map requests) { + public void setRequests(ArrayList requests) { this.requests = requests; } - private void changeMembersMap(Set set){ + private void createUidUri(Set set){ for ( User user : (Set) set ) { - members.put(user.getuId(), getUri()); + members.add( new UidUriJson(user) ); } } - private void changeRequestsMap(Set set){ + private void createRidUri(Set set){ for ( Request request : (Set) set ) { - requests.put(request.getrId(), getUri()); + requests.add( new RidUriJson(request) ); } } - - - } diff --git a/src/main/java/com/example/cosmos_serversb/jsons/GroupsMapJson.java b/src/main/java/com/example/cosmos_serversb/jsons/GroupsMapJson.java new file mode 100644 index 0000000..0398fbd --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/jsons/GroupsMapJson.java @@ -0,0 +1,31 @@ +//このクラスは仮です +package com.example.cosmos_serversb.jsons; + +import com.example.cosmos_serversb.entities.Group; +import com.example.cosmos_serversb.entities.User; + +import java.util.*; + +public class GroupsMapJson { + private ArrayList groups = new ArrayList<>(); + + public GroupsMapJson(User user){ + changeGroupsMap(user.getGroups()); + } + + + public ArrayList getGroups(){ + return groups; + } + + public void setGroups(ArrayList groups){ + this.groups = groups; + } + + private void changeGroupsMap(Set set){ + for ( Group group : (Set) set ) { + groups.add(new GidUriJson(group)); + } + } +} + diff --git a/src/main/java/com/example/cosmos_serversb/jsons/RidUriJson.java b/src/main/java/com/example/cosmos_serversb/jsons/RidUriJson.java new file mode 100644 index 0000000..fc873cb --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/jsons/RidUriJson.java @@ -0,0 +1,35 @@ +package com.example.cosmos_serversb.jsons; + +import com.example.cosmos_serversb.entities.Request; +import com.example.cosmos_serversb.entities.User; + +public class RidUriJson { + private String rId; + private String uri; + + public RidUriJson(){ + + } + + public RidUriJson(Request request){ + setuId(request.getrId()); + setUri(request.getUri()); + } + + private void setuId(String uId) { + this.rId = rId; + } + + public String getuId() { + return rId; + } + + private void setUri(String uri){ + this.uri = uri; + } + + public String getUri(){ + return uri; + } + +} diff --git a/src/main/java/com/example/cosmos_serversb/jsons/UidUriJson.java b/src/main/java/com/example/cosmos_serversb/jsons/UidUriJson.java new file mode 100644 index 0000000..318c6bd --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/jsons/UidUriJson.java @@ -0,0 +1,34 @@ +package com.example.cosmos_serversb.jsons; + +import com.example.cosmos_serversb.entities.User; + +public class UidUriJson { + private String uId; + private String uri; + + public UidUriJson(){ + + } + + public UidUriJson(User user){ + setuId(user.getuId()); + setUri(user.getUri()); + } + + private void setuId(String uId) { + this.uId = uId; + } + + public String getuId() { + return uId; + } + + private void setUri(String uri){ + this.uri = uri; + } + + public String getUri(){ + return uri; + } + +} 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 5d58b66..db5cd0b 100644 --- a/src/main/java/com/example/cosmos_serversb/models/Groups.java +++ b/src/main/java/com/example/cosmos_serversb/models/Groups.java @@ -4,6 +4,7 @@ import javax.inject.Singleton; import com.example.cosmos_serversb.entities.*; +import com.example.cosmos_serversb.jsons.*; import org.hibernate.Session; import org.hibernate.SessionFactory; @@ -11,7 +12,7 @@ public class Groups { private static Groups theInstance = null; private static ArrayList groups = new ArrayList<>(); - private static HashMap testMap = new HashMap<>(); + //private static HashMap groupsMap = new HashMap<>(); private static SessionFactory sessionFactory; private static String baseURI = "http://nitta-lab-www.is.konan-u.ac.jp/"; @@ -39,20 +40,19 @@ String rId = UUID.randomUUID().toString(); return rId; } - - //getGroupsListByUidは現状うまく処理されない - public static HashMap getGroupsListByUid(String uId){ - return getTestHashMap(); + + public static GroupsMapJson getGroupsListByUid(String uId){ + return getGroupsHashMap(uId); } public static Group createGroup(String name, String uId){ //先にGidとuriの発行を行う String gId = getInstance().createGId(); String uri = baseURI + AppName + "/groups/" + gId; - createTestHashMap(gId, uri); Group testGroup = new Group(gId, uri, name, uId); Session session = SessionManager.getInstance().getSession(); session.save(testGroup); + return testGroup; } @@ -127,6 +127,7 @@ return DeleteResult.SUCCESS; } + /* //テスト用にHashMapの作成 public static void createTestHashMap(String gId, String uri){ testMap.put(gId, uri); @@ -135,11 +136,13 @@ for (String key : TestMap.keySet()) { System.out.println(key + " " + TestMap.get(key)); } - */ } + */ - public static HashMap getTestHashMap(){ - return testMap; + public static GroupsMapJson getGroupsHashMap(String uId){ + Session session = SessionManager.getInstance().getSession(); + GroupsMapJson groupsjson = new GroupsMapJson(session.load(User.class, uId)); + return groupsjson; } } diff --git a/src/main/java/com/example/cosmos_serversb/models/Users.java b/src/main/java/com/example/cosmos_serversb/models/Users.java index 14733a7..b4c1165 100644 --- a/src/main/java/com/example/cosmos_serversb/models/Users.java +++ b/src/main/java/com/example/cosmos_serversb/models/Users.java @@ -141,7 +141,7 @@ } } } - return null; + return null; } public static boolean checkToken(String uId, String token) { @@ -153,4 +153,4 @@ //与えられたパスワードとUserのパスワードを比較し結果を返す return true; } -} +} \ No newline at end of file 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 cdfd10e..70f42fd 100644 --- a/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java +++ b/src/main/java/com/example/cosmos_serversb/resources/GroupsRest.java @@ -2,7 +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.example.cosmos_serversb.jsons.*; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.hibernate.Session; @@ -19,7 +19,7 @@ public class GroupsRest { @GET public String getGroupsListByUid(@QueryParam("uId") String uId, @QueryParam("token") String token) throws JsonProcessingException{ - SessionManager.getInstance().getSession(); + Session session = SessionManager.getInstance().getSession(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Groups.getInstance().getGroupsListByUid(uId)); SessionManager.getInstance().closeSession(); @@ -40,7 +40,6 @@ SessionManager.getInstance().closeSession(); // String json = mapper.writeValueAsString(group);//このJSONには、グループを作成したユーザの情報が含まれていません。 - //以下が思うように動かない。 Session session = SessionManager.getInstance().getSession(); // Group editedGroup = (Group) session.load(Group.class, group.getgId());//editedGroupの値がおかしい? // String json = mapper.writeValueAsString(editedGroup);