diff --git a/src/main/java/com/example/cosmos_serversb/entities/Group.java b/src/main/java/com/example/cosmos_serversb/entities/Group.java index 4508c5d..63a76cb 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/Group.java +++ b/src/main/java/com/example/cosmos_serversb/entities/Group.java @@ -88,7 +88,7 @@ //User user = new User(uId, uId, "http:test", "sa", "hogehoge"); User user = Users.getInstance().getUserById(uId); members.add(user); - user.addGroups(this); +// user.addGroups(this); } } diff --git a/src/main/java/com/example/cosmos_serversb/entities/User.java b/src/main/java/com/example/cosmos_serversb/entities/User.java index 0b9c4bd..a930715 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/User.java +++ b/src/main/java/com/example/cosmos_serversb/entities/User.java @@ -1,5 +1,7 @@ package com.example.cosmos_serversb.entities; +import com.fasterxml.jackson.annotation.JsonIgnore; + import java.util.HashSet; import java.util.Set; @@ -12,6 +14,7 @@ } + public User(String name, String uId, String uri, String iconUri) { setuId(uId); setUri(uri); @@ -20,6 +23,11 @@ this.login = true; } + public static interface removeuIdAnduri{ + @JsonIgnore String getUId(); + @JsonIgnore String getUri(); + } + public String getuId() { return uId; } 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 b0610ed..b6738d3 100644 --- a/src/main/java/com/example/cosmos_serversb/models/Users.java +++ b/src/main/java/com/example/cosmos_serversb/models/Users.java @@ -1,9 +1,11 @@ package com.example.cosmos_serversb.models; +import java.util.List; import java.util.UUID; import javax.inject.Singleton; import com.example.cosmos_serversb.entities.*; +import com.fasterxml.jackson.databind.ObjectMapper; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.MetadataSources; @@ -17,30 +19,6 @@ private static SessionFactory sessionFactory; private static String baseURI = "http://nitta-lab-www.is.konan-u.ac.jp/"; private static String AppName = "cosmos"; - public static void setUp() { - // A SessionFactory is set up once for an application! - final StandardServiceRegistry registry = new StandardServiceRegistryBuilder() - .configure() // configures settings from hibernate.cfg.xml - .build(); - try { - sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory(); - } - catch (Exception e) { - // The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory - // so destroy it manually. - StandardServiceRegistryBuilder.destroy( registry ); - } - } - - public static void tearDown() { - try { - if (sessionFactory != null) { - sessionFactory.close(); - } - } catch (Exception e) { - System.out.println("Exception!"); - } - } private Users() { sessionFactory = SessionFactoryManager.getInstance().getSessionFactory(); @@ -57,11 +35,13 @@ //Tokenを作成しuIdと関連付けしDBに保存し作成したTokenを返す String token = UUID.randomUUID().toString(); Token testToken =new Token(token, uId); + + /*TODO:Session managerを作成しセッションの二重作成をしない Session session = sessionFactory.openSession(); session.beginTransaction(); session.save(testToken); session.getTransaction().commit(); - session.close(); + session.close();*/ return testToken; } @@ -71,52 +51,117 @@ return uId; } - public static User createUser(String name, String iconImage) { - String uId = getInstance().createUId(); + public static User createUser(String name, String pw, String iconImage) { + String uId = "1234"; String uri = baseURI + AppName +"/users/" +uId; - User testUser = new User("test", uId, uri, "http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); + Session session = sessionFactory.openSession(); session.beginTransaction(); + createToken(uId); + User testUser = new User(name, uId, uri, iconImage);//名前、uId、ユーザーuri、パスワード、アイコンイメージを保存 session.save(testUser); + //出力 +/* List userResult = session.createQuery( "from User" ).list(); + for ( User user : (List) userResult ) { + System.out.println( "UserId (" + user.getuId() + ") : " + user.getUri() + ": " + user.getName()); + }*/ session.getTransaction().commit(); session.close(); + return testUser; } public static User setUser(String uId, String name, String pw, String iconImage) { - User testUser = new User("test", getInstance().createUId(), "http://test.com", "http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); - return testUser; + Session session = sessionFactory.openSession(); + session.beginTransaction(); + List usersList = session.createQuery( "from User" ).list(); + for ( User user : (List) usersList ) { + if(user.getuId() == uId){ + user.setName(name); + if(iconImage != null) { + user.setIconUri(iconImage); + } + session.update(user); + break; + } + } + //ここの2行でUser.javaからUriとuIdを参照 + User findUser = (User) session.load(User.class, uId); + session.getTransaction().commit(); + session.close(); + //表示するのはUriとuIdのみ + return null; } public static User getUserById(String uId) { //与えられたuIdのUser情報を返す - User testUser = new User("test", getInstance().createUId(), "http://test.com", "http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); - return testUser; + Session session = sessionFactory.openSession(); + session.beginTransaction(); + List usersList = session.createQuery( "from User" ).list(); + //uIdを比較し、一致した場合はNameとiconUriを返す。一致しない場合はbreak + for ( User user : (List) usersList ) { + if (user.getuId() == uId) { + User findUser = (User) session.load(User.class, uId); + ObjectMapper mapper = new ObjectMapper(); +// User testUser = mapper.addMixIn(findUser,findUser.removeuIdAnduri); + return null; +// System.out.println( "name: " + user.getName() + "iconUri : " + user.getIconUri()); + }else{ + break; + } + } + session.getTransaction().commit(); + session.close(); + //一致しない場合は返す必要がないのでnull + return null; } public static User getUserByToken(String token) { //与えられたTokenに紐づくUser情報を返す - User testUser = new User("test", getInstance().createUId(), "http://test.com","http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); + User testUser = new User("test", getInstance().createUId(), "http://test.com", "http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); return testUser; } public static DeleteResult deleteUser(String uId) { + Session session = sessionFactory.openSession(); + session = sessionFactory.openSession(); + session.beginTransaction(); + Request deleteRequest = (Request) session.load(Request.class, uId); + if(deleteRequest != null){ + session.delete(deleteRequest); + System.out.println("massage: Already Deleted"); + } + session.getTransaction().commit(); + session.close(); return DeleteResult.SUCCESS; } - public static Token login(String uId) { - Token testtoken = getInstance().createToken(uId); - //tokenを作成後値を返す - return testtoken;//testToken + public static Token login(String uId,String pw) { + if(checkPassword(uId,pw)) { + Token testtoken = getInstance().createToken(uId); + //tokenを作成後値を返す +// System.out.println("true"); + return testtoken;//testToken + }else{ + return null; + } } - public static DeleteResult logout(String token) { - if(Users.getInstance().getUserByToken(token).uId == null) { - return DeleteResult.FAILURE; - }else{ + public static DeleteResult logout(String uId,String token) { + Session session = sessionFactory.openSession(); + session.beginTransaction(); + List usersList = session.createQuery( "from logout" ).list(); + for ( User user : (List) usersList ) { + if (user.getuId() == uId) { + if (Users.getInstance().getUserByToken(token).uId == null) { + return DeleteResult.FAILURE; + } else { // Users.getInstance().getUserByToken(token).token.remove(Users.getInstance().getUserByToken(token).token.indexOf(token)); - return DeleteResult.SUCCESS; + return DeleteResult.SUCCESS; + } + } } + return null; } public static boolean checkToken(String uId, String token) { diff --git a/src/main/java/com/example/cosmos_serversb/models/UsersMain.java b/src/main/java/com/example/cosmos_serversb/models/UsersMain.java new file mode 100644 index 0000000..ea61319 --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/models/UsersMain.java @@ -0,0 +1,11 @@ +package com.example.cosmos_serversb.models; + +//このメインクラスを実行すると、Hibernateのテストが行えます。 +public class UsersMain { + public static void main(String args[]){ + Users.getInstance().createUser("test1","test1","http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); + Users.login("1234","test1"); + //Users.setUser("1234","test3","test3","http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); + // Users.getUserById("1234"); + } +} diff --git a/src/main/java/com/example/cosmos_serversb/resources/UsersRest.java b/src/main/java/com/example/cosmos_serversb/resources/UsersRest.java index 497921f..32a54bb 100644 --- a/src/main/java/com/example/cosmos_serversb/resources/UsersRest.java +++ b/src/main/java/com/example/cosmos_serversb/resources/UsersRest.java @@ -18,7 +18,7 @@ @FormParam("pw") String pw, @FormParam("iconImage") String iconImage) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); - String json = mapper.writeValueAsString(Users.getInstance().createUser(name, iconImage)); + String json = mapper.writeValueAsString(Users.getInstance().createUser(name, pw, iconImage)); return json; } @@ -65,7 +65,7 @@ @PathParam("uId") String uId, @FormParam("pw") String pw) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); - String json = mapper.writeValueAsString(Users.getInstance().login(uId)); + String json = mapper.writeValueAsString(Users.getInstance().login(uId,pw)); return json; } @@ -76,7 +76,7 @@ @PathParam("uId") String uId, @FormParam("token") String token) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); - String json = mapper.writeValueAsString(Users.getInstance().logout(token)); + String json = mapper.writeValueAsString(Users.getInstance().logout(uId,token)); return json; } diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml index 5a3e6ae..140e4fa 100644 --- a/src/main/resources/hibernate.cfg.xml +++ b/src/main/resources/hibernate.cfg.xml @@ -33,7 +33,7 @@ create - +