diff --git a/src/main/java/org/ntlab/acanthus_server/resources/gallery/GalleryRest.java b/src/main/java/org/ntlab/acanthus_server/resources/gallery/GalleryRest.java index d7d6f83..a657327 100644 --- a/src/main/java/org/ntlab/acanthus_server/resources/gallery/GalleryRest.java +++ b/src/main/java/org/ntlab/acanthus_server/resources/gallery/GalleryRest.java @@ -22,8 +22,12 @@ @GET @Produces(MediaType.APPLICATION_JSON) + + //すべての作品情報を返す。 public Collection getGallery(){ + //変数にAnimation型のArrayListを代入 var animationJsonList = new ArrayList(); + //拡張for文で上記のListに作品を追加。 for (var animation : gallery.getAllAnimation()) animationJsonList.add(new AnimationJson(animation)); return animationJsonList; } @@ -32,7 +36,11 @@ @POST @Produces(MediaType.APPLICATION_JSON) - public Integer createAnimation(@FormParam("name") String name ,@FormParam("token") String token ,@FormParam("uid") Integer uid){ + + //作品名とトークンとuidをフォームデータとしてPOSTする。 + public Integer createAnimation(@FormParam("name") String animationName ,@FormParam("token") String token ,@FormParam("uid") Integer uid){ + + //Uidをとりアカウント検索 var searchAccounts = Accounts.getInstance().getAccountByUid(uid); if(searchAccounts == null){ @@ -40,6 +48,7 @@ throw new WebApplicationException(response.build()); } + //トークン認証 これもクリアするとcreateAnimationが返され作品が作られる。 if(!searchAccounts.isCollectToken(token)){ var response = Response.status(400).entity("トークンが違います。"); throw new WebApplicationException(response.build()); @@ -47,22 +56,49 @@ else { Accounts accounts = Accounts.getInstance(); Account Owner = accounts.getAccountByUid(uid); - return gallery.createAnimation(name, Owner); + return gallery.createAnimation(animationName, Owner); } } + + @Path("/{aid}") @GET @Produces(MediaType.APPLICATION_JSON) + + //aidをパスパラメータで送ると該当する作品が表示される。 public Collection getAnimationInformation(@PathParam("aid") Integer aid){ var searchAnimation =gallery.getAnimationInformation(aid); + + var response = Response.status(Response.Status.NO_CONTENT); + + if(searchAnimation == null){ + response = Response.status(404).entity("該当作品が存在しません。"); + throw new WebApplicationException(response.build()); + } + var animationJsonList = new ArrayList(); animationJsonList.add(new AnimationJson(searchAnimation)); return animationJsonList; } + //作品名で作品を検索 + public Collection getAnimationByAnimationName(@QueryParam("name") String name){ + var searchAnimation = gallery.getAnimationByAnimationName(name); + var response = Response.status(Response.Status.NO_CONTENT); + + if(searchAnimation == null){ + response = Response.status(404).entity("この作品名に該当する作品は存在しません。"); + throw new WebApplicationException(response.build()); + } + + var animationList = new ArrayList(); + animationList.add(new AnimationJson(searchAnimation)); + + return animationList; + } } \ No newline at end of file