diff --git a/src/main/java/org/ntlab/acanthus_server/entities/AccountTokenJson.java b/src/main/java/org/ntlab/acanthus_server/entities/AccountTokenJson.java new file mode 100644 index 0000000..06f0fc9 --- /dev/null +++ b/src/main/java/org/ntlab/acanthus_server/entities/AccountTokenJson.java @@ -0,0 +1,16 @@ +package org.ntlab.acanthus_server.entities; + +import com.fasterxml.jackson.annotation.JsonProperty; + +//----------------------------------------------------------------- +// アカウントのトークンを表示するJson +public class AccountTokenJson { + @JsonProperty("token") + private String token; + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + public AccountTokenJson(Account account){ + this.token = account.getToken(); + } +} diff --git a/src/main/java/org/ntlab/acanthus_server/entities/AccountUidJson.java b/src/main/java/org/ntlab/acanthus_server/entities/AccountUidJson.java new file mode 100644 index 0000000..a2ef661 --- /dev/null +++ b/src/main/java/org/ntlab/acanthus_server/entities/AccountUidJson.java @@ -0,0 +1,17 @@ +package org.ntlab.acanthus_server.entities; + +import com.fasterxml.jackson.annotation.JsonProperty; + +//----------------------------------------------------------------- +// アカウントのUIDのみを返すJson +public class AccountUidJson { + @JsonProperty("uid") + private Integer uid; + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + public AccountUidJson(Account account){ + this.uid = account.getUid(); + } + //----------------------------------------------------------------- +} 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 7b5ec21..672636c 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 @@ -3,6 +3,7 @@ import org.apache.catalina.loader.WebappClassLoader; import org.ntlab.acanthus_server.entities.Account; import org.ntlab.acanthus_server.entities.AccountJson; +import org.ntlab.acanthus_server.entities.AccountUidJson; import org.ntlab.acanthus_server.models.Accounts; import org.springframework.stereotype.Component; @@ -93,7 +94,7 @@ */ @POST @Produces(MediaType.APPLICATION_JSON) - public int createAccount(@FormParam("name") String name, @FormParam("email") String email, @FormParam("password") String password) { + public AccountUidJson createAccount(@FormParam("name") String name, @FormParam("email") String email, @FormParam("password") String password) { ResponseBuilder response = Response.status(0); @@ -108,7 +109,7 @@ if (existAccount == null) { // アカウント登録をしてuidを返す var newAccount = accounts.registerAccount(name, email, password); - return newAccount.getUid(); + return new AccountUidJson(newAccount); } else { response.status(400).entity("入力されたメールアドレスは既に使われています。"); 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 2312415..fcc288c 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 @@ -1,6 +1,7 @@ package org.ntlab.acanthus_server.resources.accounts; import org.glassfish.jersey.spi.Contract; +import org.ntlab.acanthus_server.entities.AccountTokenJson; import org.ntlab.acanthus_server.models.Accounts; import org.springframework.lang.NonNull; import org.springframework.stereotype.Component; @@ -54,7 +55,7 @@ */ @PUT @Produces(MediaType.APPLICATION_JSON) - public String issueLoginToken(@FormParam("email") String email, @FormParam("password") String password) { + public AccountTokenJson issueLoginToken(@FormParam("email") String email, @FormParam("password") String password) { var searchAccount = accounts.getAccountByEmail(email); var response = Response.status(Response.Status.NO_CONTENT); @@ -68,7 +69,7 @@ else { // トークンをアカウントに設定 searchAccount.updateToken(); - return searchAccount.getToken(); + return new AccountTokenJson(searchAccount); } throw new WebApplicationException(response.build()); }