diff --git a/src/main/java/org/ntlab/acanthus_server/resources/gallery/LayersRest.java b/src/main/java/org/ntlab/acanthus_server/resources/gallery/LayersRest.java index 92a5df6..c25ab36 100644 --- a/src/main/java/org/ntlab/acanthus_server/resources/gallery/LayersRest.java +++ b/src/main/java/org/ntlab/acanthus_server/resources/gallery/LayersRest.java @@ -1,5 +1,6 @@ package org.ntlab.acanthus_server.resources.gallery; +import org.ntlab.acanthus_server.entities.Layer; import org.ntlab.acanthus_server.entities.Position; import org.ntlab.acanthus_server.models.Gallery; import org.springframework.stereotype.Component; @@ -8,6 +9,62 @@ import javax.ws.rs.core.MediaType; import java.util.ArrayList; +// _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +// +@Component +@Path("/gallery") public class LayersRest { + private Gallery gallery = Gallery.getInstance(); + + // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ + // 1ページのレイヤー情報を全て取得します + // 成功時のレスポンス: + // @PathParam Integer aid 作品ID + // @PathParam Integer pid ページのID 今回は0 + @Path("/{aid}/pageMap/{pid}/layers") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Integer getLayers(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid) { + var pages = gallery.getAnimationByAid(aid).getPages(); + return pages.get(pid).getLayers().size(); + } + + + // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ + // 1ページに1レイヤーを4枚まで追加 + // 成功時のレスポンス: + // @PathParam Integer aid 作品ID + // @PathParam Integer pid ページのID 今回は0 + @Path("/{aid}/pageMap/{pid}/layers") + @POST + @Produces(MediaType.APPLICATION_JSON) + public Integer addLayer(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid) { + var pages = gallery.getAnimationByAid(aid).getPages(); + + if (pages.get(pid).getLayers().size() < 4) { + pages.get(pid).getLayers().add(new Layer()); + } + + return pages.get(pid).getLayers().size(); + } + + + // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ + // 1ページの1レイヤーに置けるstrokeの数を返します。 + // 成功時のレスポンス: + // @PathParam Integer aid 作品ID + // @PathParam Integer pid ページのID 今回は0 + // @PathParam Integer layerNo レイヤーの番号 今回は0 + @Path("/{aid}/pageMap/{pid}/layers/{layerNo}") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Integer getStrokeSize(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid, @PathParam("layerNo") Integer layerNo) { + var pages = gallery.getAnimationByAid(aid).getPages(); + + return pages.get(pid).getLayers().get(layerNo).getStrokes().size(); + } + + // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ + }