diff --git a/src/main/java/org/ntlab/nemophila/models/shops/Shop.java b/src/main/java/org/ntlab/nemophila/models/shops/Shop.java index 59368ca..3559e50 100644 --- a/src/main/java/org/ntlab/nemophila/models/shops/Shop.java +++ b/src/main/java/org/ntlab/nemophila/models/shops/Shop.java @@ -13,7 +13,7 @@ private double longitude; @JsonProperty("latitude") private double latitude; - @JsonProperty("posts") + private ArrayList posts = new ArrayList<>(); //Getter @@ -29,19 +29,23 @@ public double getLatitude() { return latitude; } + //idからその店の投稿を返す + public ArrayList getPosts() { + return posts; + } //Setter public void setId(String id) { - id = id; + this.id = id; } public void setName(String name) { - name = name; + this.name = name; } public void setLongitude(double longitude) { - longitude = longitude; + this.longitude = longitude; } - public void setLatitude(double latitude) { - latitude = latitude; + public void setLatitude(double latitude) { + this.latitude = latitude; } //postsに関するメソッド @@ -51,9 +55,6 @@ public void deletePost(Post post) { posts.remove(post); } - public Post getposts(int index) { - return posts.get(index); - } public int getPostsCount() { return posts.size(); } diff --git a/src/main/java/org/ntlab/nemophila/models/shops/ShopManager.java b/src/main/java/org/ntlab/nemophila/models/shops/ShopManager.java index eae8908..be41ff6 100644 --- a/src/main/java/org/ntlab/nemophila/models/shops/ShopManager.java +++ b/src/main/java/org/ntlab/nemophila/models/shops/ShopManager.java @@ -1,7 +1,11 @@ package org.ntlab.nemophila.models.shops; -import java.util.HashMap; +import org.ntlab.nemophila.models.accounts.Post; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; +import java.util.UUID; public class ShopManager { private static ShopManager theInstance = null; @@ -24,12 +28,37 @@ return shopsMap.get(id); } + public Collection getShops() { + return shopsMap.values(); + } + + //idからその店の投稿を取得 + public ArrayList getPosts (String id) { + Shop shop = shopsMap.get(id); + return shop.getPosts(); + } + //お店のidとその店を紐づけて保存 - public void setShopsMap(Shop shop) { + public void createShop(String name, double longitude, double latitude) { + UUID uuid = UUID.randomUUID(); + String id = uuid.toString(); + + //インスタンス生成 + Shop shop = new Shop(); + shop.setId(id); + shop.setName(name); + shop.setLongitude(longitude); + shop.setLatitude(latitude); + + //生成したインスタンスを登録 + updateShop(shop); + } + + public void updateShop(Shop shop) { shopsMap.put(shop.getId(), shop); } - public void deleteShop(String id) { + public void removeShop(String id) { shopsMap.remove(id); } -} +} \ No newline at end of file diff --git a/src/main/java/org/ntlab/nemophila/resources/shops/ShopsRest.java b/src/main/java/org/ntlab/nemophila/resources/shops/ShopsRest.java index 466ad61..911f135 100644 --- a/src/main/java/org/ntlab/nemophila/resources/shops/ShopsRest.java +++ b/src/main/java/org/ntlab/nemophila/resources/shops/ShopsRest.java @@ -1,15 +1,25 @@ package org.ntlab.nemophila.resources.shops; +import org.ntlab.nemophila.models.shops.Shop; +import org.ntlab.nemophila.models.shops.ShopManager; import org.springframework.stereotype.Component; -import javax.ws.rs.GET; -import javax.ws.rs.Path; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import java.util.Collection; @Component @Path("/shops") public class ShopsRest { @GET - public String getShops() { - return null; + @Produces(MediaType.APPLICATION_JSON) + public Collection getShops() { + ShopManager shopManager = ShopManager.getInstance(); + return shopManager.getShops(); + } + @POST + public void createShop(@FormParam("name") String name, @FormParam("longitude") double longitude, @FormParam("latitude") double latitude) { + ShopManager shopManager = ShopManager.getInstance(); + shopManager.createShop(name, longitude, latitude); } }