diff --git a/src/main/java/org/ntlab/nemophila/resources/accounts/AccountPostRest.java b/src/main/java/org/ntlab/nemophila/resources/accounts/AccountPostRest.java index 333391d..7d00a6e 100644 --- a/src/main/java/org/ntlab/nemophila/resources/accounts/AccountPostRest.java +++ b/src/main/java/org/ntlab/nemophila/resources/accounts/AccountPostRest.java @@ -6,6 +6,7 @@ import org.ntlab.nemophila.models.shops.Shop; import org.ntlab.nemophila.utils.Base64Decode; import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; import javax.ws.rs.*; @@ -15,7 +16,7 @@ @Component @Path("/accounts") -public class AccountPostRest { +public class AccountPostRest implements ApplicationContextAware { private org.springframework.context.ApplicationContext applicationContext; public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws BeansException { diff --git a/src/main/java/org/ntlab/nemophila/resources/accounts/AccountRest.java b/src/main/java/org/ntlab/nemophila/resources/accounts/AccountRest.java index 02c487b..ddf2453 100644 --- a/src/main/java/org/ntlab/nemophila/resources/accounts/AccountRest.java +++ b/src/main/java/org/ntlab/nemophila/resources/accounts/AccountRest.java @@ -3,15 +3,24 @@ import org.ntlab.nemophila.models.accounts.Account; import org.ntlab.nemophila.models.accounts.AccountManager; +import org.ntlab.nemophila.utils.Base64Decode; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import java.io.IOException; @Component @Path("/accounts") -public class AccountRest { +public class AccountRest implements ApplicationContextAware { + private org.springframework.context.ApplicationContext applicationContext; + + public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws BeansException { + this.applicationContext = applicationContext; + } //ユーザー情報の取得 @GET @@ -76,21 +85,27 @@ } //アイコンの変更 -// @PUT -// @Path("/{uid}/icon") -// public void nameChange(@PathParam("uid") String uid, @FormParam("name") String name, @FormParam("token") String token){ -// AccountManager am = AccountManager.getInstance(); -// Account ac = am.getAccount(uid); -// if (ac.getToken().equals(token)) { -// ac.setName(name); -// } else { -// var response = Response.status(Response.Status.NO_CONTENT); -// response.status(401).entity("tokenの認証に失敗"); -// throw new WebApplicationException(response.build()); -// } -// -// } -// } + @PUT + @Path("/{uid}/icon") + public void iconChange(@PathParam("uid") String uid, @FormParam("icon") String icon, @FormParam("token") String token){ + AccountManager am = AccountManager.getInstance(); + Account ac = am.getAccount(uid); + String pathDirectory = ""; + + if (ac.getToken().equals(token)) { + try { + pathDirectory = applicationContext.getResource("file:").getFile().getAbsolutePath() + "/apache-tomcat-9.0.10/webapps/nemophila-data"; + Base64Decode.saveIcon(uid, pathDirectory, icon); + } catch (IOException e){ + e.printStackTrace(); + throw new WebApplicationException(500); + } + } else { + var response = Response.status(Response.Status.NO_CONTENT); + response.status(401).entity("tokenの認証に失敗"); + throw new WebApplicationException(response.build()); + } + } //アイコンの削除 // @DELETE