diff --git a/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java index e90bce2..596ddc4 100644 --- a/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java +++ b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java @@ -8,6 +8,9 @@ import java.util.List; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; import retrofit2.Retrofit; import retrofit2.converter.jackson.JacksonConverterFactory; @@ -17,9 +20,9 @@ //APIの窓口 private final FriendRequestsResource friendRequestsResource; //自分が受け取った申請 - private final MutableLiveData> receivedRequests ; + private final MutableLiveData> receivedRequests; //通信結果の状態 - private final MutableLiveData operationResult ; + private final MutableLiveData operationResult; public FriendReceivedRequestViewModel() { @@ -31,10 +34,63 @@ this.receivedRequests = new MutableLiveData<>(); this.operationResult = new MutableLiveData<>(); } + //viewがobserve出来るように public MutableLiveData> getSentRequestsLiveData() { return receivedRequests; } + //サーバーから受け取ったFriendReceivedRequestのデータを格納してキャッシュしていくぞ + public void loadReceivedRequests(String token) { + //tokenを渡して、受信フレンド申請一覧を取得するHTTPリクエスト(Webのサーバーに対して何かをお願いするメッセージ」)を作る準備をしている + Call> call = friendRequestsResource.getFriendRequests(token); + //call.enqueueでサーバーへ送信(何を?) + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.isSuccessful()) { + //通信が成功したらLiveDataへのキャッシュ + receivedRequests.setValue(response.body()); + operationResult.setValue("Success"); + System.out.println("Success SetValue" + response.body()); + } else { + operationResult.setValue("Error: " + response.code()); + System.out.println("response error"); + } + } + @Override + public void onFailure(Call> call, Throwable t) { + operationResult.setValue("Network error: " + t.getMessage()); + System.out.println("ネットワークエラー: " + t); + } + }); + } + // フレンドリクエスト削除メソッド + public void deleteFriendRequest(String friendRequestId, String token) { + Call call = friendRequestsResource.deleteFriendRequest(friendRequestId, token); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + operationResult.setValue("Friend request deleted successfully."); + loadReceivedRequests(token); // 削除後、一覧を更新 + System.out.println("Deleted friend request ID: " + friendRequestId); + } else { + operationResult.setValue("Error deleting request: " + response.code()); + System.out.println("Error deleting request: " + response.code()); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + operationResult.setValue("Network error: " + t.getMessage()); + System.out.println("Network error: " + t); + } + }); + } } + + +