diff --git a/src/main/java/org/ntlab/acanthus_server/entities/Account.java b/src/main/java/org/ntlab/acanthus_server/entities/Account.java index 5ffe796..404301f 100644 --- a/src/main/java/org/ntlab/acanthus_server/entities/Account.java +++ b/src/main/java/org/ntlab/acanthus_server/entities/Account.java @@ -23,65 +23,70 @@ import java.util.UUID; public class Account { - private int uid; private String name; private String email; private String token; private String password; + private Work work; + //----------------------------------------------------------------- //コンストラクト public Account(String name, String email, String password) { this.name = name; this.email = email; this.password = password; - } - - //----------------------------------------------------------------- - //----------------------------------------------------------------- - //uidを返す - //GetとSetを実装 - public int getUid() { - return uid; - } - - //----------------------------------------------------------------- - public void setUid(int uid) { - this.uid = uid; - } - - //----------------------------------------------------------------- - //tokenを返す - //GetとSetを実装 - public String getToken() { - return token; - } - - //----------------------------------------------------------------- - // トークンを生成する - public void createToken() { - this.token = UUID.randomUUID().toString(); - } - - //----------------------------------------------------------------- - //passwordをtoken認証後返す - public String getPassword(String token) { - //IFでトークン認証をしたのちに返す - return password; + this.work = new Work(); } //----------------------------------------------------------------- - //emailを返す - public String getEmail() { - return email; + //----------------------------------------------------------------- + // setter + public void setName(String name) { + this.name = name; } //----------------------------------------------------------------- public void setEmail(String email) { this.email = email; } //----------------------------------------------------------------- + public void setPassword(String password){ + this.password = password; + } + //----------------------------------------------------------------- + public void setWork(Work work){ + this.work = work; + } + //----------------------------------------------------------------- + // getter + public String getName(){ + return (this.name); + } + //----------------------------------------------------------------- + public String getEmail() { + return (this.email); + } + //----------------------------------------------------------------- + public String getPassword() { + return (this.password); + } + //----------------------------------------------------------------- + public String getToken() { + return (this.token); + } + //----------------------------------------------------------------- + public Work getWork() { + return (this.work); + } + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // トークンを更新する 藤井 + public void updateToken() { + this.token = UUID.randomUUID().toString(); + } + //----------------------------------------------------------------- // パスワードが一致しているかを判定 public boolean isMatchedPassword(String password) { return this.password.equals(password); } - + //----------------------------------------------------------------- } 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 5bd2854..2744949 100644 --- a/src/main/java/org/ntlab/acanthus_server/entities/Animation.java +++ b/src/main/java/org/ntlab/acanthus_server/entities/Animation.java @@ -4,13 +4,43 @@ import java.util.Collection; public class Animation { - private ArrayList invitedUid; + private Integer aid; + private String name; + private String description; + private Boolean ispublic; + private String createdDate; + private String lastUpdate; + private Integer likes; + private Integer views; + private ArrayList hashTag; + private Integer owner; + private ArrayList editors; + private ArrayList invites; + private ArrayList pageMap; - public Animation(Integer invitedUid) { + public Animation(String name, Integer owner) { + //一意のaidをふる + // this.aid = + this.ispublic = false; + this.owner = owner; + //this.editors.add(Editor); + //this.pageMap.add(0, this.aid); } - public Collection getGalleryInvites() { - return invitedUid; + public void setName(String name){ + this.name = name; + } + + public void setDescription(String description){ + this.description = description; + } + + public void setIsPublic(Boolean ispublic){ + this.ispublic = ispublic; + } + + public Collection getAnimationInvites() { + return invites; } } diff --git a/src/main/java/org/ntlab/acanthus_server/entities/Editor.java b/src/main/java/org/ntlab/acanthus_server/entities/Editor.java new file mode 100644 index 0000000..a69560e --- /dev/null +++ b/src/main/java/org/ntlab/acanthus_server/entities/Editor.java @@ -0,0 +1,4 @@ +package org.ntlab.acanthus_server.entities; + +public class Editor { +} diff --git a/src/main/java/org/ntlab/acanthus_server/models/Accounts.java b/src/main/java/org/ntlab/acanthus_server/models/Accounts.java index befa65e..2a8976e 100644 --- a/src/main/java/org/ntlab/acanthus_server/models/Accounts.java +++ b/src/main/java/org/ntlab/acanthus_server/models/Accounts.java @@ -2,16 +2,18 @@ import org.ntlab.acanthus_server.entities.Account; +import java.util.Collection; import java.util.HashMap; +import java.util.Random; /* * アカウント管理シングルトン * */ public class Accounts { - private static Accounts _theInstance = null; + private static Accounts theInstance = null; - private HashMap _accountHashMap = new HashMap<>(); + private HashMap accountHashMap = new HashMap<>(); //----------------------------------------------------------------- // インスタンス生成禁止 @@ -22,8 +24,8 @@ // シングルトン取得 //----------------------------------------------------------------- public static Accounts getInstance() { - if (_theInstance == null) _theInstance = new Accounts(); - return _theInstance; + if (theInstance == null) theInstance = new Accounts(); + return theInstance; } //----------------------------------------------------------------- @@ -31,18 +33,31 @@ // Uidからアカウントを返す //----------------------------------------------------------------- public Account getAccountByUid(int uid) { - return _accountHashMap.get(uid); + return accountHashMap.get(uid); } //----------------------------------------------------------------- // e-Mailからアカウントを返す //----------------------------------------------------------------- public Account getAccountByEMail(String email) { - for (var account : _accountHashMap.values()) { + for (var account : accountHashMap.values()) { if (account.getEmail().equals(email)) return account; } return null; } //----------------------------------------------------------------- + //accountを全て返す + public Collection getAllAccounts(){ + return accountHashMap.values(); + } + //----------------------------------------------------------------- + //accountを追加する + public int registAccount(String name, String email, String password){ + var newAccount = new Account(name, email, password); + var uid = new Random().nextInt(); + + accountHashMap.put(uid,newAccount); + return uid; + } } diff --git a/src/main/java/org/ntlab/acanthus_server/resources/accounts/AccountsRest.java b/src/main/java/org/ntlab/acanthus_server/resources/accounts/AccountsRest.java index 1dbd7da..2b183cb 100644 --- a/src/main/java/org/ntlab/acanthus_server/resources/accounts/AccountsRest.java +++ b/src/main/java/org/ntlab/acanthus_server/resources/accounts/AccountsRest.java @@ -1,4 +1,30 @@ package org.ntlab.acanthus_server.resources.accounts; +import org.ntlab.acanthus_server.entities.Account; +import org.ntlab.acanthus_server.models.Accounts; +import org.springframework.stereotype.Component; + +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import java.util.Collection; + +@Component +@Path("/accounts") public class AccountsRest { + private Accounts accounts = Accounts.getInstance(); + + //----------------------------------------------------------------- + @GET + @Produces(MediaType.APPLICATION_JSON) + public Collection getAccounts(@QueryParam("uid") int uid, @QueryParam("token") String token) { + return accounts.getAllAccounts(); + } + + //----------------------------------------------------------------- + @POST + @Produces(MediaType.APPLICATION_JSON) + public int createAccount(@FormParam("name") String name , @FormParam("email") String email, @FormParam("password") String password){ + return accounts.registAccount(name,email,password); + } + } diff --git a/src/main/java/org/ntlab/acanthus_server/resources/accounts/LoginRest.java b/src/main/java/org/ntlab/acanthus_server/resources/accounts/LoginRest.java index 461387e..55ceb99 100644 --- a/src/main/java/org/ntlab/acanthus_server/resources/accounts/LoginRest.java +++ b/src/main/java/org/ntlab/acanthus_server/resources/accounts/LoginRest.java @@ -13,7 +13,6 @@ private Accounts accounts = Accounts.getInstance(); //----------------------------------------------------------- - /** * ログイン時のトークン認証 * アカウントが存在して, かつトークンを持っているかを確認する @@ -31,7 +30,6 @@ } //----------------------------------------------------------- - /** * ログイン時, トークンをアカウントに発行させる * @@ -47,7 +45,7 @@ if (searchAccount == null) throw new WebApplicationException(404); if (searchAccount.isMatchedPassword(password)) throw new WebApplicationException(401); - searchAccount.createToken(); + searchAccount.updateToken(); } //----------------------------------------------------------- diff --git a/src/main/java/org/ntlab/acanthus_server/resources/gallery/EditorsRest.java b/src/main/java/org/ntlab/acanthus_server/resources/gallery/EditorsRest.java index a7f144c..50fe520 100644 --- a/src/main/java/org/ntlab/acanthus_server/resources/gallery/EditorsRest.java +++ b/src/main/java/org/ntlab/acanthus_server/resources/gallery/EditorsRest.java @@ -1,9 +1,27 @@ package org.ntlab.acanthus_server.resources.gallery; import org.springframework.stereotype.Component; -import javax.ws.rs.Path; + +import javax.ws.rs.*; @Component @Path("gallery") public class EditorsRest { + /* + 各ユーザーの作品を取得するメソッド + */ + @Path("{aid}/Editors") + @GET + public String getEditors(@PathParam("uid") String uid, @QueryParam("token") String token) { + return "Ok"; + } + + /* + 作品への参加を許可するメソッド + */ + @Path("/{aid}/Editors") + @PUT + public String addEditors(@PathParam("uid")String uid, @FormParam("token") String token) { + return "Ok"; + } } 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 0739fa2..bca3267 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 @@ -1,6 +1,7 @@ package org.ntlab.acanthus_server.resources.gallery; import org.ntlab.acanthus_server.entities.Animation; +import org.ntlab.acanthus_server.models.Gallery; import org.springframework.stereotype.Component; import javax.ws.rs.*; @@ -11,19 +12,20 @@ @Path("/gallery") public class InvitesRest { + private Gallery animation = Gallery.getInstance(); + @Path("/{aid}/invites") @GET @Produces(MediaType.APPLICATION_JSON) - public String isGalleryInvites(@PathParam("aid")Integer aid, @QueryParam("invitedUid") String invitedUid, @QueryParam("invitedUidToken") String invitedUserToken, @QueryParam("Token") String ownerToken) { + public Collection isGalleryInvites(@PathParam("aid")Integer aid, @QueryParam("invitedUid") String invitedUid, @QueryParam("invitedUidToken") String invitedUserToken, @QueryParam("Token") String ownerToken) { if (invitedUid == null && invitedUserToken == null) { //招待した人を確認する - - + return null; }else{ //招待されているかを確認する } - return "hello"; + return null; } @Path("/{aid}/invites") 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 2b6f6da..5f781bb 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 @@ -9,17 +9,10 @@ @Path("/gallery") public class LayersRest { - /** - *指定したレイヤー情報(順番、枚数)を獲得するメソッド。 - * @param layerNo レイヤー番号 - * @param aid 作品id - * @param pid ページID - * @return strokeNo{pen, color, thickness, positions{x, y}} - */ @Path("/{aid}/pageMap/0/layers/0") @GET @Produces(MediaType.APPLICATION_JSON) - public void getLayersRest(@PathParam("aid") Integer aid, @FormParam("layerNo") Integer layerNo, @FormParam("pid") Integer pid) { + public void getLayersRest(@PathParam("aid") Integer aid, @QueryParam("layerNo") Integer layerNo, @QueryParam("pid") Integer pid) { /* if() {