diff --git a/src/main/java/org/ntlab/acanthus_server/entities/Animation.java b/src/main/java/org/ntlab/acanthus_server/entities/Animation.java index 5270c60..740d058 100644 --- a/src/main/java/org/ntlab/acanthus_server/entities/Animation.java +++ b/src/main/java/org/ntlab/acanthus_server/entities/Animation.java @@ -62,10 +62,9 @@ return invites; } - //----------------------------------------------------------------- // 本当に招待されているかを確認する - public Collection searchAnimationInvites(Integer aid, String invitedUid, String invitedUserToken) { + public Collection searchAnimationInvites(Integer aid, String invitedUid) { Animation anime_info = gallery.getAnimationInformation(aid); Account invitedAccount = accounts.getAccountByUid(Integer.parseInt(invitedUid)); ArrayList invitedlist = null; @@ -73,10 +72,9 @@ for(Account account : anime_info.invites) { if(account == invitedAccount) { invitedlist.add(account); - return invitedlist; } } - return null; + return invitedlist; } //----------------------------------------------------------------- diff --git a/src/main/java/org/ntlab/acanthus_server/resources/gallery/InvitesRest.java b/src/main/java/org/ntlab/acanthus_server/resources/gallery/InvitesRest.java index 7fbcde1..c932056 100644 --- a/src/main/java/org/ntlab/acanthus_server/resources/gallery/InvitesRest.java +++ b/src/main/java/org/ntlab/acanthus_server/resources/gallery/InvitesRest.java @@ -4,6 +4,7 @@ import org.ntlab.acanthus_server.entities.Animation; import org.ntlab.acanthus_server.models.Accounts; import org.ntlab.acanthus_server.models.Gallery; +import org.ntlab.acanthus_server.resources.accounts.InvitedRest; import org.springframework.stereotype.Component; import javax.ws.rs.*; @@ -17,7 +18,17 @@ private Gallery animations = Gallery.getInstance(); private Accounts accounts = Accounts.getInstance(); + //----------------------------------------------------------------- + // GET + //----------------------------------------------------------------- + // オーナーが招待した人を確認する OR 招待された人が本当に招待されているかを確認する + /** + * @param aid 作品のID + * @param invitedUid 招待された人のID + * @param invitedUserToken 招待された人のトークン + * @param ownerToken オーナーのトークン + */ @Path("/{aid}/invites") @GET @Produces(MediaType.APPLICATION_JSON) @@ -29,6 +40,8 @@ Account owner = animation.getOwner(); if (owner != null && owner.getToken().equals(ownerToken)) { return animation.getAnimationInvites(); + } else { + throw new WebApplicationException(404); } } @@ -36,27 +49,55 @@ if (ownerToken == null) { Account invitedAccount = accounts.getAccountByUid(Integer.parseInt(invitedUid)); if (invitedAccount != null && invitedAccount.getToken().equals(invitedUserToken)) { - return animation.searchAnimationInvites(aid, invitedUid, invitedUserToken); + return animation.searchAnimationInvites(aid, invitedUid); + } else { + throw new WebApplicationException(404); } } - return null; + + throw new WebApplicationException(404); } + //----------------------------------------------------------------- + // PUT + //----------------------------------------------------------------- + // オーナーが作品に招待する + + /** + * @param aid 作品のID + * @param ownerUid オーナーのID + * @param invitedUid 招待された人のID + * @param ownerToken オーナーのトークン + */ + @Path("/{aid}/invites") @PUT @Produces(MediaType.APPLICATION_JSON) public String addInvite(@PathParam("aid") Integer aid, @FormParam("ownerUid") String ownerUid, @FormParam("invitedUid") String invitedUid, @FormParam("ownerToken") String ownerToken) { Animation animation = animations.getAnimationByAid(aid); - //トークンの確認 Account owner = animation.getOwner(); + //トークンの確認 if (owner != null && owner.getToken().equals(ownerToken)) { animation.addAccoutToAnimationInvites(aid, ownerUid, invitedUid); + //accountのinvitedカラム(workカラム?)に追加する処理をかく return "追加しました"; + } else { + throw new WebApplicationException(404); } - return null; } + //----------------------------------------------------------------- + // DELETE + //----------------------------------------------------------------- + // 招待されてた人が確認後、招待履歴を削除する(オーナーが招待を取り消しは実装しない) + + /** + * @param aid 作品のID + * @param invitedUid 招待された人のID + * @param invitedToken 招待された人のトークン + */ + @Path("/{aid}/invites") @DELETE @Produces(MediaType.APPLICATION_JSON) @@ -69,7 +110,9 @@ animation.deleteAccountFromAnimationInvites(aid, invitedUid); return "削除しました"; + } else { + throw new WebApplicationException(404); + } - return null; } } \ No newline at end of file