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 dd15d5b..1f2c7c8 100644 --- a/src/main/java/org/ntlab/acanthus_server/entities/Account.java +++ b/src/main/java/org/ntlab/acanthus_server/entities/Account.java @@ -24,6 +24,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.ntlab.acanthus_server.models.Gallery; import java.util.HashMap; import java.util.UUID; 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 2c58c6a..4496a60 100644 --- a/src/main/java/org/ntlab/acanthus_server/models/Accounts.java +++ b/src/main/java/org/ntlab/acanthus_server/models/Accounts.java @@ -81,6 +81,10 @@ */ public Account registerAccount(String name, String email, String password) { var uid = new Random().nextInt(); + + // uidが被ったらuidの振り直し + while(getAccountByUid(uid) != null) uid = new Random().nextInt(); + var newAccount = new Account (uid, name, email, password); accountHashMap.put(uid, newAccount); 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 85a2726..629063d 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 @@ -33,6 +33,7 @@ public Collection getAccounts(@QueryParam("name") String name) { var accountJsonList = new ArrayList(); + Consumer addJson = (account) -> { { var newAccountJson = new AccountJson(account); @@ -70,9 +71,9 @@ throw new WebApplicationException(response.build()); } - // トークンの検証 + // トークンを検証し, 発見したユーザーを返却 if (!token.equals(searchAccount.getToken())) response = Response.status(400).entity("トークンが違います。"); - else response.status(200).entity(searchAccount); + else return searchAccount; throw new WebApplicationException(response.build()); } @@ -81,6 +82,7 @@ // POST //----------------------------------------------------------------- // アカウントの新規作成 + // Uidを返却する /** * @param name ユーザー名 @@ -94,18 +96,16 @@ ResponseBuilder response = Response.status(0); // パスワード, メアドが正しく入力されているかチェック - if (!isCorrectName(name) || !isCorrectPassword(password) || !isCorrectEmailAddress(email)) { + if (!isCorrectName(name) || !isCorrectPassword(password) || !isCorrectEmailAddress(email)) response.status(401).entity("入力に誤りがあります。"); - throw new WebApplicationException(response.build()); - } // すでに同じメールアドレスが存在しているか var existAccount = accounts.getAccountByEmail(email); if (existAccount != null) response.status(400).entity("入力されたメールアドレスは既に使われています。"); else { - // アカウント登録 + // アカウント登録をしてuidを返す var newAccount = accounts.registerAccount(name, email, password); - response.status(200).entity(newAccount.getUid()); + return newAccount.getUid(); } throw new WebApplicationException(response.build()); 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 adbb211..362a44b 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 @@ -19,7 +19,7 @@ private Accounts accounts = Accounts.getInstance(); //----------------------------------------------------------- - + // ログイン情報が正しいかどうか /** * ログイン時のトークン認証 * アカウントが存在して, かつトークンを持っているかを確認する @@ -35,7 +35,7 @@ // アカウントとトークンの検証 if (searchAccount == null) response.status(404).entity(false); if (!token.equals(searchAccount.getToken())) response.status(400).entity(false); - else response.status(200).entity(true); + else return true; throw new WebApplicationException(response.build()); } @@ -60,7 +60,7 @@ else { // トークンをアカウントに設定 searchAccount.updateToken(); - response.status(201).entity(searchAccount.getToken()); + return searchAccount.getToken(); } throw new WebApplicationException(response.build());