diff --git a/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java b/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java new file mode 100644 index 0000000..394ae0d --- /dev/null +++ b/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java @@ -0,0 +1,92 @@ +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 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(); + } + +} \ No newline at end of file