diff --git a/src/main/java/org/ntlab/citrusserver/entities/Account.java b/src/main/java/org/ntlab/citrusserver/entities/Account.java index 0567713..89d28bf 100644 --- a/src/main/java/org/ntlab/citrusserver/entities/Account.java +++ b/src/main/java/org/ntlab/citrusserver/entities/Account.java @@ -11,6 +11,9 @@ @JsonIgnore private String password; + @JsonIgnore////// + private String accountColor; + public Account(String aid, String pass) { accountId = aid; password = pass; @@ -32,4 +35,7 @@ public void setPassword(String p) {password = p;} public String getPassword() {return password;} + @JsonIgnore + public void setAccountColor(String a) {accountColor = a;} + public String getAccountColor() {return accountColor;} } diff --git a/src/main/java/org/ntlab/citrusserver/repositories/AccountManager.java b/src/main/java/org/ntlab/citrusserver/repositories/AccountManager.java index 751131f..4f5d087 100644 --- a/src/main/java/org/ntlab/citrusserver/repositories/AccountManager.java +++ b/src/main/java/org/ntlab/citrusserver/repositories/AccountManager.java @@ -105,7 +105,22 @@ accounts.get(accountId).setIntroduction(introduction); } } + /////////// + // accountの色を返す(GET) + public String getAccountColor(String accountId){ + if(accounts.containsKey(accountId)) { //アカウントがあるかを確認 + return accounts.get(accountId).getAccountColor(); + } + return null; + } + // accountの色を変更する(PUT) + public void changeAccountColor(String accountId, String newColor, String token){ + if(accountToken.get(accountId).equals(token)) { //token比較 + accounts.get(accountId).setAccountColor(newColor); + } + } + //////////// // アカウントidとパスワードでログインし、tokenを返す (POST) public String login(String accountId, String password) { diff --git a/src/main/java/org/ntlab/citrusserver/resources/AccountsRest.java b/src/main/java/org/ntlab/citrusserver/resources/AccountsRest.java index 2a74ab0..1e38ea0 100644 --- a/src/main/java/org/ntlab/citrusserver/resources/AccountsRest.java +++ b/src/main/java/org/ntlab/citrusserver/resources/AccountsRest.java @@ -136,16 +136,41 @@ var response = Response.status(Response.Status.FORBIDDEN).entity("認証失敗");//forbiddenは403 throw new WebApplicationException(response.build()); } -///////// -// @Path("/{account_id}/photo") -// //画像を返す -// @GET -// public String getAccount(@PathParam("account_id") String accountId){ -// Account ac = accountManager.getAccount(accountId); -// return ac.getPhoto(); -// } -// @Path("/{account_id}/photo") -// @PUT + + + ///////////(9/26) + // accountの色を返す(GET) + @Path("/{account_id}/accountColor") + @GET + public String getAccountColor(@PathParam("account_id") String accountId){ + String accountColor = accountManager.getAccountColor(accountId); + return accountColor; + } + + //accountの色を変更する(PUT) + @Path("/{account_id}/accountColor") + @PUT + @Consumes(MediaType.APPLICATION_FORM_URLENCODED)//bodyに入力する値がある時 + public void changeAccountColor(@PathParam("account_id") String accountId, + @FormParam("accountColor")String accountColor, + @FormParam("token") String token){ + //404 + if (!accountManager.getAccountsID().contains(accountId)){ //account_idが存在しない時 + var response = Response.status(Response.Status.NOT_FOUND).entity("IDが存在しません");//404 + throw new WebApplicationException(response.build()); + } + //成功 + if(accountManager.checkToken(accountId, token)) { + accountManager.changeAccountColor(accountId, accountColor, token); + return; + } + + //403 + var response = Response.status(Response.Status.FORBIDDEN).entity("認証失敗");//forbiddenは403 + throw new WebApplicationException(response.build()); + } + /////////////////// + ////////// // お気に入りの本のbook_idを削除する (DELETE)