diff --git a/src/main/java/org/ntlab/nemophila/entities/AccountNameJson.java b/src/main/java/org/ntlab/nemophila/entities/AccountNameJson.java new file mode 100644 index 0000000..a4e6b93 --- /dev/null +++ b/src/main/java/org/ntlab/nemophila/entities/AccountNameJson.java @@ -0,0 +1,15 @@ +package org.ntlab.nemophila.entities; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class AccountNameJson { + @JsonProperty("uid") + private String uid; + @JsonProperty("name") + private String name; + + public AccountNameJson(String uid, String name) { + this.uid = uid; + this.name = name; + } +} diff --git a/src/main/java/org/ntlab/nemophila/models/accounts/AccountManager.java b/src/main/java/org/ntlab/nemophila/models/accounts/AccountManager.java index ef65cf7..ff0cb26 100644 --- a/src/main/java/org/ntlab/nemophila/models/accounts/AccountManager.java +++ b/src/main/java/org/ntlab/nemophila/models/accounts/AccountManager.java @@ -38,6 +38,11 @@ this.createAccount("d","d"); Account testAc4 = this.getAccount("1114"); testAc4.createPost(shopA, 5, "カレー", "なかなかおいしかった", null, null, null); + + FriendManager friendManagerC = testAc3.getFriendManager(); + FriendManager friendManagerD = testAc4.getFriendManager(); + friendManagerC.addFriend(testAc4); + friendManagerD.addFriend(testAc3); } //シングルトン化 diff --git a/src/main/java/org/ntlab/nemophila/resources/accounts/FriendsRest.java b/src/main/java/org/ntlab/nemophila/resources/accounts/FriendsRest.java index 24a7f5a..2d5a981 100644 --- a/src/main/java/org/ntlab/nemophila/resources/accounts/FriendsRest.java +++ b/src/main/java/org/ntlab/nemophila/resources/accounts/FriendsRest.java @@ -1,5 +1,6 @@ package org.ntlab.nemophila.resources.accounts; +import org.ntlab.nemophila.entities.AccountNameJson; import org.ntlab.nemophila.models.accounts.Account; import org.ntlab.nemophila.models.accounts.AccountManager; import org.ntlab.nemophila.models.accounts.FriendManager; @@ -18,17 +19,18 @@ @GET @Path("/{uid}/friends") @Produces(MediaType.APPLICATION_JSON) - public Collection getFriends(@PathParam("uid") String uid) { + public Collection getFriends(@PathParam("uid") String uid) { AccountManager accountManager = AccountManager.getInstance(); Account account = accountManager.getAccount(uid); //uidに紐づいたAccountのインスタンスを取得 FriendManager friendManager = account.getFriendManager(); //取得したAccountのインスタンスのFriendManagerを取得 HashSet friends = friendManager.getFriends(); //Accountのインスタンスが入ったHashSetを取得 - ArrayList ids = new ArrayList<>(); //YAML上ではidが入ったArrayListで返すのでそれ用に作成 + ArrayList accountNameJsons = new ArrayList<>(); for (Account ac : friends) { - ids.add(ac.getId()); + AccountNameJson anj = new AccountNameJson(ac.getId(), ac.getName()); + accountNameJsons.add(anj); } - return ids; + return accountNameJsons; } @PUT diff --git a/src/main/java/org/ntlab/nemophila/resources/accounts/RequestedRest.java b/src/main/java/org/ntlab/nemophila/resources/accounts/RequestedRest.java index 4438b22..03d7b43 100644 --- a/src/main/java/org/ntlab/nemophila/resources/accounts/RequestedRest.java +++ b/src/main/java/org/ntlab/nemophila/resources/accounts/RequestedRest.java @@ -1,5 +1,6 @@ package org.ntlab.nemophila.resources.accounts; +import org.ntlab.nemophila.entities.AccountNameJson; import org.ntlab.nemophila.models.accounts.Account; import org.ntlab.nemophila.models.accounts.AccountManager; import org.ntlab.nemophila.models.accounts.FriendManager; @@ -18,20 +19,21 @@ @GET @Path("/{uid}/requested") @Produces(MediaType.APPLICATION_JSON) - public Collection getRequested(@PathParam("uid") String uid) { + public Collection getRequested(@PathParam("uid") String uid) { //uidが申請を受けているidの一覧を返す AccountManager am = AccountManager.getInstance(); Account ac = am.getAccount(uid); FriendManager fm = ac.getFriendManager(); - ArrayList requesting = fm.getRequested(); - ArrayList ids = new ArrayList<>(); + ArrayList requested = fm.getRequested(); + ArrayList accountNameJsons = new ArrayList<>(); - for (Account a: requesting){ - ids.add(a.getId()); + for (Account account : requested) { + AccountNameJson anj = new AccountNameJson(account.getId(), account.getName()); + accountNameJsons.add(anj); } - return ids; + return accountNameJsons; } @DELETE diff --git a/src/main/java/org/ntlab/nemophila/resources/accounts/RequestingRest.java b/src/main/java/org/ntlab/nemophila/resources/accounts/RequestingRest.java index d8dfb44..c549256 100644 --- a/src/main/java/org/ntlab/nemophila/resources/accounts/RequestingRest.java +++ b/src/main/java/org/ntlab/nemophila/resources/accounts/RequestingRest.java @@ -1,5 +1,6 @@ package org.ntlab.nemophila.resources.accounts; +import org.ntlab.nemophila.entities.AccountNameJson; import org.ntlab.nemophila.models.accounts.Account; import org.ntlab.nemophila.models.accounts.AccountManager; import org.ntlab.nemophila.models.accounts.FriendManager; @@ -18,21 +19,20 @@ @GET @Path("/{uid}/requesting") @Produces(MediaType.APPLICATION_JSON) - public Collection getRequesting(@PathParam("uid") String uid) { + public Collection getRequesting(@PathParam("uid") String uid) { //uidが申請をしているidの一覧を返す AccountManager am = AccountManager.getInstance(); //アカウントマネージャーを取得 Account ac = am.getAccount(uid); //uidからAccountインスタンスを取得 FriendManager fm = ac.getFriendManager(); //uidのAccountのFriendManagerを取得 ArrayList requesting = fm.getRequesting(); //uidが申請中のAccountが入ったArrayListを取得 - ArrayList ids = new ArrayList<>(); //idを返すために格納するArrayListを宣言 - - //取得したArrayListからidのみをidsに格納し返す - for (Account a: requesting){ - ids.add(a.getId()); + ArrayList accountNameJsons = new ArrayList<>(); + for (Account account : requesting) { + AccountNameJson anj = new AccountNameJson(account.getId(), account.getName()); + accountNameJsons.add(anj); } - return ids; + return accountNameJsons; } @PUT