diff --git a/src/main/java/com/example/cosmos_serversb/entities/Shop.java b/src/main/java/com/example/cosmos_serversb/entities/Shop.java new file mode 100644 index 0000000..11b6c42 --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/entities/Shop.java @@ -0,0 +1,65 @@ +package com.example.cosmos_serversb.entities; + +import com.example.cosmos_serversb.views.ShopsView; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonView; + +import java.util.HashSet; +import java.util.Set; + +public class Shop { + /** + * SHOP用のクラス + * + * @param longitude string + * @param latitude String + * @param longitudeRange String + * @param latitudeRange String + * @param shop String + * + */ + @JsonInclude(JsonInclude.Include.NON_NULL) + public String longitude; + @JsonView(ShopsView.getShopsView.class) + public String latitude; + @JsonView(ShopsView.getShopsView.class) + public String longitudeRange; + public String latitudeRange; + public String shop; + + public Set shops = new HashSet<>(); + + public Shop() { + } + + public Shop(String longitude, String latitude, String longitudeRange, String latitudeRange, String shop) { + setlongitude(longitude); + setlatitude(latitude); + setlongitudeRange(longitudeRange); + setlatitudeRange(latitudeRange); + setshop(shop); + } + + public void setlongitude(String longitude) { + this.longitude = longitude; + } + + public void setlatitude(String latitude) { + this.latitude = latitude; + } + + public void setlongitudeRange(String longitudeRange) { + this.longitudeRange = longitudeRange; + } + + public void setlatitudeRange(String latitudeRange) { + this.latitudeRange = latitudeRange; + } + + public void setshop(String shop) { + this.shop = shop; + } + +} \ No newline at end of file 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 dccaaeb..eb1b59a 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/User.java +++ b/src/main/java/com/example/cosmos_serversb/entities/User.java @@ -25,7 +25,6 @@ * @param firstToken String 初期トークン * * TODO: Tokenのデータベース接続 - * TODO: ダミートークン削除 */ @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("token") @@ -46,8 +45,6 @@ @JsonIgnore public Set tokens = new HashSet<>(); //public Set tokens = new HashSet<>(); - @JsonIgnore - private String dummyToken = "a9965652-c2ec-4a0d-a78a-b457e8b2deca"; public User() { diff --git a/src/main/java/com/example/cosmos_serversb/models/Shops.java b/src/main/java/com/example/cosmos_serversb/models/Shops.java new file mode 100644 index 0000000..cc26d93 --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/models/Shops.java @@ -0,0 +1,37 @@ +package com.example.cosmos_serversb.models; + +import com.example.common.LogUtils; +import com.example.cosmos_serversb.entities.*; +import org.hibernate.Session; +import org.hibernate.SessionFactory; + +import javax.inject.Singleton; + +@Singleton +public class Shops { + + private static Shops theInstance = null; + private static SessionFactory sessionFactory; + private static String baseURI="http://nitta-lab-www.is.konan-u.ac.jp/"; + private static String AppName="cosmos"; + + private Shops() { + sessionFactory = SessionFactoryManager.getInstance().getSessionFactory(); + } + + public static Shops getInstance() { + if (theInstance == null) { + theInstance = new Shops(); + } + return theInstance; + } + + public static Shop getShop(String longitude, String latitude, String longitudeRange, String latitudeRange, String shop) { + String uri = baseURI + AppName +shop; + + Session session = SessionManager.getInstance().getSession(); + Shop testShop = new Shop(longitude,latitude,longitudeRange,latitudeRange,shop); + session.save(testShop); + return testShop; + } +} \ No newline at end of file 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 459972f..2c8b971 100644 --- a/src/main/java/com/example/cosmos_serversb/models/Users.java +++ b/src/main/java/com/example/cosmos_serversb/models/Users.java @@ -6,6 +6,7 @@ import javax.ws.rs.WebApplicationException; import com.example.cosmos_serversb.entities.*; + import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Value; @@ -147,23 +148,24 @@ return testUser; } - public static DeleteResult deleteUser(String uId) { - Session session = SessionManager.getInstance().getSession(); - User deleteUser = (User) session.get(User.class, uId); - if(deleteUser != null){ - for(Group group : deleteUser.getGroups()){ - if(group.getMembers().size() == 1){ - //グループにユーザが存在しなくなるため、グループごと削除する。 - Groups.getInstance().deleteGroup(group.getgId()); - }else{ - //該当ユーザをグループから退会。 - group.deleteMember(deleteUser); + public static DeleteResult deleteUser(String uId, String token) { + if(checkToken(uId, token)){ + Session session = SessionManager.getInstance().getSession(); + User deleteUser = (User) session.get(User.class, uId); + if(deleteUser != null){ + for(Group group : deleteUser.getGroups()){ + if(group.getMembers().size() == 1){ + //グループにユーザが存在しなくなるため、グループごと削除する。 + Groups.getInstance().deleteGroup(group.getgId()); + }else{ + //該当ユーザをグループから退会。 + group.deleteMember(deleteUser); + } } + deleteUser.groups.clear(); + session.delete(deleteUser); + return DeleteResult.SUCCESS; } - deleteUser.groups.clear(); - session.delete(deleteUser); - System.out.println("massage: Already Deleted"); - return DeleteResult.SUCCESS; } return DeleteResult.FAILURE; } @@ -215,7 +217,12 @@ * @param uId * @param */ - return true; + Session session = SessionManager.getInstance().getSession(); + List tokenList = session.createQuery( "select token from Token where uId =\'" +uId+"\'" ).list(); + if(tokenList.contains(token)){ + return true; + } + return false; } public static boolean checkPassword(String uId, String pw) { diff --git a/src/main/java/com/example/cosmos_serversb/models/UsersMain.java b/src/main/java/com/example/cosmos_serversb/models/UsersMain.java deleted file mode 100644 index d348a90..0000000 --- a/src/main/java/com/example/cosmos_serversb/models/UsersMain.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.cosmos_serversb.models; - -//このメインクラスを実行すると、Hibernateのテストが行えます。 -public class UsersMain { - public static void main(String args[]){ - /* - Users.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/"); - Users.getUserById("1234"); - */ - } -} diff --git a/src/main/java/com/example/cosmos_serversb/resources/ShopsRest.java b/src/main/java/com/example/cosmos_serversb/resources/ShopsRest.java new file mode 100644 index 0000000..98fb8a0 --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/resources/ShopsRest.java @@ -0,0 +1,32 @@ +package com.example.cosmos_serversb.resources; + +import com.example.common.LogUtils; +import com.example.cosmos_serversb.models.SessionManager; +import com.example.cosmos_serversb.models.Shops; +import com.example.cosmos_serversb.views.UsersView; +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.views.ShopsView; + +@Component + +@Path("/shops") +public class ShopsRest { + + @GET + public String getShopsInfo(@QueryParam("longitude") String longitude, + @QueryParam("latitude") String latitude, + @QueryParam("longitudeRange") String longitudeRange, + @QueryParam("latitudeRange") String latitudeRange, + @QueryParam("shop") String shop)throws JsonProcessingException { + SessionManager.getInstance().getSession(); + ObjectMapper mapper = new ObjectMapper(); + String json = mapper.writerWithView(ShopsView.getShopsView.class).writeValueAsString(Shops.getInstance().getShop(longitude,latitude,longitudeRange,latitudeRange,shop)); + SessionManager.getInstance().closeSession(); + LogUtils.info("位置情報を取得"); + return json; + } +} 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 88766dc..e3093c7 100644 --- a/src/main/java/com/example/cosmos_serversb/resources/UsersRest.java +++ b/src/main/java/com/example/cosmos_serversb/resources/UsersRest.java @@ -54,7 +54,7 @@ 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)); + String json = mapper.writeValueAsString(Users.getInstance().deleteUser(uId,token)); SessionManager.getInstance().closeSession(); LogUtils.info("uId:"+uId+" ユーザを削除しました"); return json; diff --git a/src/main/java/com/example/cosmos_serversb/views/ShopsView.java b/src/main/java/com/example/cosmos_serversb/views/ShopsView.java new file mode 100644 index 0000000..3346f75 --- /dev/null +++ b/src/main/java/com/example/cosmos_serversb/views/ShopsView.java @@ -0,0 +1,8 @@ +package com.example.cosmos_serversb.views; + +public class ShopsView { + public class postShopsView{} + public class getShopsView{} + public class putShopsView{} +} +