diff --git a/app/src/main/java/com/example/tampopo_client/resources/FriendRequestResource.java b/app/src/main/java/com/example/tampopo_client/resources/FriendRequestResource.java deleted file mode 100644 index 9d3eb0b..0000000 --- a/app/src/main/java/com/example/tampopo_client/resources/FriendRequestResource.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.example.tampopo_client.resources; - - -import com.example.tampopo_client.models.FriendRequest; - -import java.util.List; - -import retrofit2.Call; -import retrofit2.http.DELETE; -import retrofit2.http.Field; -import retrofit2.http.FormUrlEncoded; -import retrofit2.http.GET; -import retrofit2.http.POST; -import retrofit2.http.Path; -import retrofit2.http.Query; - -public interface FriendRequestResource { - - //このAPIではリクエストのボディをx-www-form-urlencoded という形式で送ります - @FormUrlEncoded - @POST("friend-requests") - Call postFriendRequest( - @Field("sender-id") String senderId, - @Field("receiver-id") String receiverId, - @Field("token") String token - ); - - @GET("friend-requests") - Call> getFriendRequests( - @Query("token") String token - ); - - @DELETE("friend-requests/{friend-request-id}") - Call deleteFriendRequest( - @Path("friend-request-id") String friendRequestId, - @Query("token") String token - ); -} \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/resources/FriendRequestsResource.java b/app/src/main/java/com/example/tampopo_client/resources/FriendRequestsResource.java new file mode 100644 index 0000000..d119b3d --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/resources/FriendRequestsResource.java @@ -0,0 +1,38 @@ +package com.example.tampopo_client.resources; + + +import com.example.tampopo_client.models.FriendRequest; + +import java.util.List; + +import retrofit2.Call; +import retrofit2.http.DELETE; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.GET; +import retrofit2.http.POST; +import retrofit2.http.Path; +import retrofit2.http.Query; + +public interface FriendRequestsResource { + + //このAPIではリクエストのボディをx-www-form-urlencoded という形式で送ります + @FormUrlEncoded + @POST("friend-requests") + Call postFriendRequest( + @Field("sender-id") String senderId, + @Field("receiver-id") String receiverId, + @Field("token") String token + ); + + @GET("friend-requests") + Call> getFriendRequests( + @Query("token") String token + ); + + @DELETE("friend-requests/{friend-request-id}") + Call deleteFriendRequest( + @Path("friend-request-id") String friendRequestId, + @Query("token") String token + ); +} \ No newline at end of file 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 new file mode 100644 index 0000000..fb1c277 --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java @@ -0,0 +1,40 @@ +package com.example.tampopo_client.viewModels; + +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +import com.example.tampopo_client.models.FriendRequest; +import com.example.tampopo_client.resources.FriendRequestsResource; + +import java.util.List; + +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + +public class FriendReceivedRequestViewModel extends ViewModel { + //サーバー(API)と通信するためのツール + private final Retrofit retrofit; + //APIの窓口 + private final FriendRequestsResource friendRequestsResource; + //自分が受け取った申請 + private final MutableLiveData> receivedRequests ; + //通信結果の状態 + private final MutableLiveData operationResult ; + + public FriendReceivedRequestViewModel() { + + this.retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/tampopo-server/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + this.friendRequestsResource = retrofit.create(FriendRequestsResource.class); + this.receivedRequests = new MutableLiveData<>(); + this.operationResult = new MutableLiveData<>(); + } + //viewがobserve出来るように + public MutableLiveData> getSentRequestsLiveData() { + return receivedRequests; + } + + +} diff --git a/app/src/main/java/com/example/tampopo_client/viewmodels/FriendSentRequestViewModel.java b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendSentRequestViewModel.java new file mode 100644 index 0000000..6676003 --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendSentRequestViewModel.java @@ -0,0 +1,126 @@ +package com.example.tampopo_client.viewModels; + +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +import com.example.tampopo_client.models.FriendRequest; +import com.example.tampopo_client.resources.FriendRequestsResource; + + +import java.util.List; + +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + +public class FriendSentRequestViewModel extends ViewModel { + //サーバー(API)と通信するためのツール + private final Retrofit retrofit; + // APIの窓口 + private final FriendRequestsResource friendRequestsResource; + //自分が送った申請 + private final MutableLiveData> sentRequests ; + //変数がfinalやから一回しか代入できません + //sentRequestで呼び出される、viewモデルの下のコンストラクターがアンドロイドがで呼び出される + // 処理の進行中 + private final MutableLiveData operationResult ; + + + + public FriendSentRequestViewModel() { + + this.retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/tampopo-server/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + + this.friendRequestsResource = retrofit.create(FriendRequestsResource.class); + this.sentRequests = new MutableLiveData<>(); + this.operationResult = new MutableLiveData<>(); + + } + //viewがobserve出来るように + public MutableLiveData> getSentRequestsLiveData() { + return sentRequests; + } + +//Mutable Livedataの宣言 + + + + + +// /** +// * GET 全sentリクエスト取得 +// */ +/* public void loadFriendRequests(String token) { + Call> call = friendRequestResource.getFriendRequests(token); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.isSuccessful()) { + HttpCookie requestsLiveData; + requestsLiveData.setValue(response.body()); + } else { + System.out.println("取得失敗: " + response.code()); + } + }*/ +// +// @Override +// public void onFailure(Call> call, Throwable t) { +// System.out.println("通信エラー: " + t.getMessage()); +// } +// }); +// } +// +// /** +// * POST リクエスト送信 +// */ +// public void createFriendRequest(String senderId, String receiverId, String token) { +// Call call = friendRequestResource.postFriendRequest(senderId, receiverId, token); +// call.enqueue(new Callback() { +// @Override +// public void onResponse(Call call, Response response) { +// if (response.isSuccessful()) { +// operationResultLiveData.setValue(true); +// loadFriendRequests(token); +// } else { +// operationResultLiveData.setValue(false); +// System.out.println("Failed POST: " + response.code()); +// } +// } +// +// @Override +// public void onFailure(Call call, Throwable t) { +// operationResultLiveData.setValue(false); +// System.out.println("通信エラー: " + t.getMessage()); +// } +// }); +// } +// +// /** +// * DELETE リクエスト削除 +// */ +// public void deleteFriendRequest(String friendRequestId, String token) { +// Call call = friendRequestResource.deleteFriendRequest(friendRequestId, token); +// call.enqueue(new Callback() { +// @Override +// public void onResponse(Call call, Response response) { +// if (response.isSuccessful()) { +// operationResultLiveData.setValue(true); +// loadFriendRequests(token); +// } else { +// operationResultLiveData.setValue(false); +// System.out.println("削除失敗: " + response.code()); +// } +// } +// +// @Override +// public void onFailure(Call call, Throwable t) { +// operationResultLiveData.setValue(false); +// System.out.println(" 通信エラー " + t.getMessage()); +// } +// }); +// } +//} + +}