diff --git a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java index 2da0430..3d57bc1 100644 --- a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java +++ b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java @@ -71,7 +71,6 @@ @DELETE("shops/{sid}/posts/{uid}/{pid}") Call deletePost( @Path("sid") String sid, - @Path("uid") String uid, @Path("pid") String pid, @Field("token") String token diff --git a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java index b8d13de..42479b7 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java @@ -1,11 +1,14 @@ package com.example.nemophila.viewmodels; import com.example.nemophila.entities.Account; +import com.example.nemophila.entities.Post; import com.example.nemophila.resources.AccountsRest; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; +import java.util.Collection; + import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -18,23 +21,26 @@ private final AccountsRest accountsRest; // ライブデータ private final MutableLiveData accountLiveData; + private final MutableLiveData> accountPostsLiveData; // コンストラクタ public AccountViewModel() { - this.accountLiveData = new MutableLiveData<>(); this.retrofit = new Retrofit.Builder() .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/") .addConverterFactory(JacksonConverterFactory.create()) .build(); this.accountsRest = retrofit.create(AccountsRest.class); + this.accountLiveData = new MutableLiveData<>(); + this.accountPostsLiveData = new MutableLiveData<>(); } // ライブデータの取得(ゲッター) public MutableLiveData getAccountLiveData() { return accountLiveData; } + public MutableLiveData> getAccountPostsLiveData() { return accountPostsLiveData; } - // アカウント情報の取得 + // 対象のアカウント情報の取得 public void getAccount(String uid) { Call call = accountsRest.getAccount(uid); @@ -54,7 +60,7 @@ }); } - // アカウント情報の削除 + // 対象のアカウント情報の削除 public void deleteAccount(String uid) { Call call = accountsRest.deleteAccount(uid); @@ -74,7 +80,7 @@ }); } - // アカウントパスワードの変更 + // 対象のアカウントパスワードの変更 public void changePw(String uid, String oldPw, String newPw, String token) { Call call = accountsRest.changePw(uid, oldPw, newPw, token); @@ -94,7 +100,7 @@ }); } - // アカウント名の変更 + // 対象のアカウント名の変更 public void changeName(String uid, String name, String token) { Call call = accountsRest.changeName(uid, name, token); @@ -113,4 +119,44 @@ } }); } + + // 対象のアカウントがした投稿の全取得 + public void getAccountPosts(String uid) { + Call> call = accountsRest.getAccountPosts(uid); + + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.isSuccessful()) { + accountPostsLiveData.setValue(response.body()); + } else { + System.out.println("response error"); + } + } + @Override + public void onFailure(Call> call, Throwable t) { + System.out.println("correspondence error"); + } + }); + } + + // 対象のアカウントがした投稿の削除 + public void deleteAccountPost(String sid, String uid, String pid, String token) { + Call call = accountsRest.deletePost(sid, uid, pid, token); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("successful"); + } else { + System.out.println("response error"); + } + } + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("correspondence error"); + } + }); + } }