diff --git a/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java b/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java index 9f20f74..13d3e19 100644 --- a/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java +++ b/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java @@ -38,13 +38,30 @@ return a; } - //アクティビティを取得 + //単一のアクティビティを取得 public Activity getActivity(String userId,String activityId) { if(activityMap.get(userId) == null) { return null; } - return activityMap.get(userId).get(activityId); + + HashMap activities = activityMap.get(userId); + + if(activities.get(activityId) == null) { + return null; + } + Activity activity = activities.get(activityId); + return activity; } +// +// public HashMap getActivitiesForUser(String userId){ +// if(activityMap.get(userId) == null) { +// return null; +// } +// +// //keySet());ならアクティビティIDだけで詳細が取れない +// HashMap value = activityMap.get(userId); +// return value; +// } //アクティビティのテキストが存在しないとき public boolean isValidActivity(String userId, String activityId) { @@ -105,12 +122,13 @@ } //そのユーザの全アクティビティ情報を保存するリストをの作成 - public List getActivitiesForUser(String userId){ + public HashMap getActivitiesForUser(String userId){ if(activityMap.get(userId) == null) { - return new ArrayList<>(); + return null; } //keySet());ならアクティビティIDだけで詳細が取れない - return new ArrayList<>(activityMap.get(userId).keySet()); + HashMap value = activityMap.get(userId); + return value; } } diff --git a/src/main/java/org/ntlab/tampoposerver/resources/ActivitiesResource.java b/src/main/java/org/ntlab/tampoposerver/resources/ActivitiesResource.java index a4da893..1c9c48a 100644 --- a/src/main/java/org/ntlab/tampoposerver/resources/ActivitiesResource.java +++ b/src/main/java/org/ntlab/tampoposerver/resources/ActivitiesResource.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Component; import java.time.LocalTime; +import java.util.HashMap; @Path("/users") @Component @@ -36,16 +37,16 @@ throw new WebApplicationException(response.build()); } - Activity activity = activityRepository.getActivity(userId, filter); + HashMap activities = activityRepository.getActivitiesForUser(userId); //404(アクティビティが存在しないとき) - if (activity == null) { //取得した最新のアクティビティがnullのとき + if (activities == null) { //取得した最新のアクティビティがnullのとき var response = Response.status(Response.Status.NOT_FOUND).entity("アクティビティが存在しません"); throw new WebApplicationException(response.build()); } //200(アカウントの全アクティビティを取得) - return Response.status(Response.Status.OK).entity(activity).build(); + return Response.status(Response.Status.OK).entity(activities).build(); } @Path("/{user-id}/activities") @@ -88,24 +89,26 @@ @Path("/{user-id}/activities/{activity-id}") @GET //アカウントの単一アクティビティを取得する + @Produces(MediaType.APPLICATION_JSON) public Response getActivity(@PathParam("user-id") String userId, @PathParam("activity-id") String activityId) { - + //失敗 //400(不正なリクエスト) if (activityId == null || activityId.isEmpty()) { //アクティビティがnull or 空だったら var response = Response.status(Response.Status.BAD_REQUEST).entity("不正なリクエスト"); throw new WebApplicationException(response.build()); } - //404(ユーザーが存在しないとき) - if (userRepository.getUser(userId) == null) { - var response = Response.status(Response.Status.NOT_FOUND).entity("ユーザーが存在しません"); + //404(ユーザーかアクティビティが存在しないとき) + if (userRepository.getUser(userId) == null || activityRepository.getActivity(userId, activityId) == null) { + var response = Response.status(Response.Status.NOT_FOUND).entity("ユーザーかアクティビティが存在しません"); throw new WebApplicationException(response.build()); } + Activity activity = activityRepository.getActivity(userId,activityId); + //200(アカウントの単一アクティビティを取得) - activityRepository.getActivity(userId, activityId); - return Response.status(Response.Status.OK).build(); + return Response.status(Response.Status.OK).entity(activity).build(); } @Path("/{user-id}/activities/{activity-id}") @@ -129,9 +132,9 @@ } - //404(ユーザー存在しないとき) - if (userRepository.getUser(userId) == null) { - var response = Response.status(Response.Status.NOT_FOUND).entity("ユーザーが存在しません"); + //404(ユーザーかアクティビティが存在しないとき) + if (userRepository.getUser(userId) == null || activityRepository.getActivity(userId, activityId) == null) { + var response = Response.status(Response.Status.NOT_FOUND).entity("ユーザーかアクティビティが存在しません"); throw new WebApplicationException(response.build()); } @@ -140,10 +143,11 @@ spring bootが500を返してくれるからコードなし */ + boolean deleteActivity = activityRepository.deleteActivity(userId,activityId); + //成功 //200(アクティビティを削除) - activityRepository.deleteActivity(userId, activityId); - return Response.status(Response.Status.OK).build(); + return Response.status(Response.Status.OK).entity(deleteActivity).build(); } @@ -158,8 +162,8 @@ throw new WebApplicationException(response.build()); } - //404(アクティビティが存在しないとき) - if (activityRepository.getActivity(userId, activityId) == null) { //取得したアクティビティがnullのとき(不正な内容のとき) + //404(取得したアクティビティがnullのとき) + if (activityRepository.getActivity(userId, activityId) == null) { var response = Response.status(Response.Status.NOT_FOUND).entity("アクティビティが存在しません"); throw new WebApplicationException(response.build()); } diff --git a/src/test/java/org/ntlab/tampoposerver/repositories/ActivityRepositoryTest.java b/src/test/java/org/ntlab/tampoposerver/repositories/ActivityRepositoryTest.java index 59910eb..c29d918 100644 --- a/src/test/java/org/ntlab/tampoposerver/repositories/ActivityRepositoryTest.java +++ b/src/test/java/org/ntlab/tampoposerver/repositories/ActivityRepositoryTest.java @@ -77,10 +77,14 @@ System.out.println(newtime2); //そのユーザの全アクティビティ情報を保存するリストをの作成 - List list = activityRepository.getActivitiesForUser("abc"); - List list2 = activityRepository.getActivitiesForUser("kkk"); - System.out.println(list2); - System.out.println(list); +// List list = activityRepository.getActivitiesForUser("abc"); +// List list2 = activityRepository.getActivitiesForUser("kkk"); +// System.out.println(list2); +// System.out.println(list); + + activityRepository.addActivity("rana","aaa","2025/07/17 14:17"); + Activity activity = activityRepository.getActivity("rana","4"); + System.out.println(activity); } }