package org.ntlab.tampoposerver.resources; import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; import org.springframework.stereotype.Component; import static jakarta.ws.rs.core.Response.status; @Path("/chat-requests/") @Component public class ChatRequestsResource { @GET @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public Response getChatRequests( @QueryParam("token") String token, @QueryParam("user-id") String userId) { //400(認証が必要です) if (token == null || token.isEmpty() || userId == null || userId.isEmpty()) { return status(Response.Status.BAD_REQUEST) .entity("認証が必要です").build(); } // 岩谷さんのUserRepositoryでtokenの確認を行う // //200(成功レスポンス) // ArrayList<ChatRequest> 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; } @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(); } @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(); } }