diff --git a/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java b/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java index 5e632de..6a82d91 100644 --- a/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java +++ b/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java @@ -417,7 +417,7 @@ } - //フレンド相手の情報の取得 + //フレンド相手の情報を一覧取得 @GET @Path("/{user-id}/friends") @Produces(MediaType.APPLICATION_JSON) @@ -447,12 +447,12 @@ } return Response - .ok() + .ok(friendIds, MediaType.APPLICATION_JSON) .build(); } - //自分のペアのpid一覧(JSON)の取得 + //特定のペアの自分以外のuidを返す @GET @Path("/{user-id}/friends/{pair-id}") @Produces(MediaType.APPLICATION_JSON) @@ -481,8 +481,25 @@ ArrayList pairIds = user.getFriendPairs(); + //pairIdsの中からparameterのpair-idで完全一致させてそれをreturnする + int pairIdInt; + try { + pairIdInt = Integer.parseInt(pairId); + } catch (NumberFormatException e) { + throw new WebApplicationException( + Response.status(Response.Status.BAD_REQUEST) + .entity("pair-id は整数で指定してください") + .build()); + } + FriendPair pair = friendService.getFriendPair(token, pairIdInt); + if (pair == null) { + throw new WebApplicationException(Response.Status.NOT_FOUND); + } + + String otherUserId = pair.getUser0Id().equals(userId) ? pair.getUser1Id() : pair.getUser0Id(); + // JSON で返す - return Response.ok(pairIds).build(); + return Response.ok(otherUserId, MediaType.APPLICATION_JSON).build(); }