diff --git a/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java b/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java index 0f585e3..30a951c 100644 --- a/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java +++ b/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java @@ -42,13 +42,13 @@ private final UserRepository userRepository; - private final FriendService friendService; + private final FriendService friendService; @Autowired public UsersResource(UserRepository userRepository, - FriendService friendService) { //インスタンスを作るときに呼び出されるメソッドであるコンストラクタを書く + FriendService friendService) { //インスタンスを作るときに呼び出されるメソッドであるコンストラクタを書く this.userRepository = userRepository; - this.friendService = friendService; + this.friendService = friendService; } //@Path("/{uid}/..")などパスを指定する @@ -82,11 +82,20 @@ .build()); } - //ユーザーがいるか調べる + + //ユーザーIDが存在しているか調べる +// ArrayList userIdList = new ArrayList(); +// userIdList.add(userRepository.getAllUsers()); +// for (int i = 0; i < userIdList.size(); i++) { +// if(userId.equals(userIdList.get(i).toString())) { +// throw new WebApplicationException(Response.Status.CONFLICT); +// } +// } + User existingUser = userRepository.getUser(userId); if (existingUser != null) { return Response.status(Response.Status.CONFLICT) - .entity("すでにユーザーが存在しています") + .entity("ユーザーIDが重複しています") .build(); } @@ -154,7 +163,6 @@ public Response login(@PathParam("user-id") String userId, @FormParam("password") String password) { - if (userId == null || userId.isBlank()) { throw new WebApplicationException( Response.status(Response.Status.BAD_REQUEST) @@ -322,6 +330,7 @@ @PUT @Path("/{user-id}/email") @Consumes(MediaType.APPLICATION_FORM_URLENCODED) + @Produces(MediaType.APPLICATION_JSON) public Response updateEmail(@PathParam("user-id") String userId, @FormParam("new-email") String newEmail, @FormParam("token") String token) { if (newEmail == null || newEmail.isBlank()) { @@ -337,9 +346,13 @@ .build() ); } - - if (!newEmail.equals(user.getEmail())) { - throw new WebApplicationException(Response.Status.CONFLICT); + //メールアドレスの重複チェック + ArrayList userEmailLists = userRepository.getAllEmails(); + for (String userEmailList : userEmailLists) { + if (userEmailList != null && userEmailList.equals(newEmail)) { + throw new WebApplicationException(Response.status(Response.Status.CONFLICT).entity("emailが重複しています").build()); + //return Response.status(Response.Status.CONFLICT).entity("emailが重複しています").build(); + } } if (token == null || !token.equals(user.getToken())) { @@ -351,7 +364,6 @@ } - //emailアップデート user.setEmail(newEmail); return Response.ok(user.getEmail(), MediaType.APPLICATION_JSON).build(); @@ -376,7 +388,7 @@ @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public String updateIcon(@PathParam("user-id") String userId, @FormParam("new-icon") String newIcon, @FormParam("token") String token) { - if ( newIcon == null || newIcon.isBlank() ) { + if (newIcon == null || newIcon.isBlank()) { throw new WebApplicationException(Response.Status.BAD_REQUEST); } @@ -497,7 +509,7 @@ boolean removed = friendService.removeFriendPair(token, pairId); - if(!removed) { + if (!removed) { throw new WebApplicationException(Response.Status.NOT_FOUND); }