package com.example.cosmos_serversb.models; import java.util.UUID; import javax.inject.Singleton; import com.example.cosmos_serversb.entities.*; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.MetadataSources; import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; @Singleton public class Users { private static Users theInstance = null; 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() { setUp(); } public static Users getInstance() { if (theInstance == null) { theInstance = new Users(); } return theInstance; } public static Token createToken(String uId) { //Tokenを作成しuIdと関連付けしDBに保存し作成したTokenを返す String token = UUID.randomUUID().toString(); Token testToken =new Token(token, uId); Session session = sessionFactory.openSession(); session.beginTransaction(); session.save(testToken); session.getTransaction().commit(); session.close(); return testToken; } public static String createUId() { //uIdを作成し既存していないかチェック後DBに保存し作成したuIdを返す String uId = UUID.randomUUID().toString(); return uId; } public static User createUser(String name, String iconImage) { String uId = getInstance().createUId(); 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(); session.save(testUser); 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; } 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; } 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"); return testUser; } public static DeleteResult deleteUser(String uId) { return DeleteResult.SUCCESS; } public static Token login(String uId) { Token testtoken = getInstance().createToken(uId); //tokenを作成後値を返す return testtoken;//testToken } public static DeleteResult logout(String token) { 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; } } public static boolean checkToken(String uId, String token) { //与えられたtokenとUserのtokenを比較し結果を返す return true; } public static boolean checkPassword(String uId, String pw) { //与えられたパスワードとUserのパスワードを比較し結果を返す return true; } }