diff --git a/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java b/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java index 687669b..cec3c55 100644 --- a/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java +++ b/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java @@ -3,6 +3,7 @@ import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import static jakarta.ws.rs.core.Response.status; @@ -14,13 +15,20 @@ public class ChatRequestsResource { + private ChatRequestRepository chatRequestRepository; + + + @Autowired + public ChatRequestsResource(ChatRequestRepository chatRequestRepository) { + this.chatRequestRepository = chatRequestRepository; + } + @GET @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public Response getChatRequests( @QueryParam("token") String token, @QueryParam("user-id") String userId) { - - //400(認証が必要です) + //400(認証が必要です) tokenがなかったら400 if (token == null || token.isEmpty() || userId == null || userId.isEmpty()) { return status(Response.Status.BAD_REQUEST) .entity("認証が必要です").build(); @@ -28,67 +36,66 @@ // 岩谷さんのUserRepositoryでtokenの確認を行う -// //200(成功レスポンス) -// ArrayList request = ChatService.getChatRequests(token, userId);//前の人がListだったらArrayListになるから作ってて頼む時はListで頼め -// if (request == null) { -// return status(Response.Status.BAD_REQUEST) -// .entity("認証が必要です").build(); -// } -// -// return Response.status(Response.Status.OK).entity(requests).build(); //entityは返す、まだ誰も作ってないからrequets自分で作るか、しょうさんが作るか - return null; + //200(成功レスポンス) + ArrayList requests = chatRequestRepository.getChatRequests(token, userId);//前の人がListだったらArrayListになるから作ってて頼む時はListで頼め + if (requests == null) { + return status(Response.Status.BAD_REQUEST) + .entity("認証が必要です").build(); + } + + return Response.status(Response.Status.OK).entity(requests).build(); + } //チャットリクエストの作成 //トークンを使って他人の情報を返さないように実装する。 -// @POST -// @Consumes(MediaType.APPLICATION_FORM_URLENCODED) -// public Response postChatRequest( -// @FormParam("token") String token, -// @FormParam("sender-id") String senderId, -// @FormParam("receiver-id") String receiverId) { -// -// //204チャットがリクエストされました。 -// ChatRequest created = ChatService.createChatRequest(token, senderId, receiverId); -// if (created == null) { -// return status(Pesponse.Status.BAD_REQUEST) -// .entity("チャットリクエストの作成に失敗しました").build(); -// } -// -// return Response. -// status(Response.Status.OK).entity(created.getId()).build(); -// } + @POST + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) + public Response postChatRequest( + @FormParam("token") String token, + @FormParam("sender-id") String senderId, + @FormParam("receiver-id") String receiverId) { -// @Path("/chat-requests/{chat-request-id}") -// @DELETE -// @Consumes(MediaType.APPLICATION_FORM_URLENCODED) -// public Response deleteChatRequest( -// @QueryParam("token") String token, -// @PathParam("chat-request-id") int chatRequestId) { -// -// //401承認が必要です -// if (token == null || token.isEmpty()) { -// return status(Response.Status.UNAUTHORIZED) -// .entity("認証が必要です") // 401 -// .build(); -// } -// //403権限がありません -// boolean hasPermission = checkUserPermission(token, chatRequestId); -// if (!hasPermission) { -// return status(Response.Status.FORBIDDEN) -// .entity("権限がありません") // 403 -// .build(); -// } -// -// //404チャットリクエストが見つかりません。 -// boolean deleted = deleteChatRequestById(chatRequestId); -// if (!deleted) { -// return status(Response.Status.NOT_FOUND) -// .entity("チャットリクエストが見つかりません") // 404 -// .build(); -// } -// //204チャットリクエストが削除されました -// return status(Response.Status.NO_CONTENT).build(); -// } + + //204チャットがリクエストされました + ChatRequestRepository created = chatRequestRepository.createChatRequest(token, senderId, receiverId); + if (created == null) { + return status(Response.Status.BAD_REQUEST) + .entity("チャットリクエストの作成に失敗しました").build(); + } + + return Response. + status(Response.Status.OK).entity(created.getId()).build(); + } + + @Path("/chat-requests/{chat-request-id}") + @DELETE + public Response deleteChatRequest( + @QueryParam("receiver-token") String receiverToken, + @PathParam("chat-request-id") Integer chatRequestId) { + + //401承認が必要です + if (receiverToken == null || receiverToken.isEmpty()) { + return status(Response.Status.UNAUTHORIZED) + .entity("認証が必要です") // 401 + .build(); + } + //403権限がありません + boolean hasPermission = checkUserPermission(receiverToken, chatRequestId); + if (!hasPermission) { + return status(Response.Status.FORBIDDEN) + .entity("権限がありません") // 403 + .build(); + } + //404チャットリクエストが見つかりません。 + boolean deleted = deleteChatRequestById(chatRequestId); + if (!deleted) { + return status(Response.Status.NOT_FOUND) + .entity("チャットリクエストが見つかりません") // 404 + .build(); + } + //204チャットリクエストが削除されました + return status(Response.Status.NO_CONTENT).build(); + } } \ No newline at end of file