Newer
Older
NemophilaClient / app / src / main / java / com / example / nemophila / viewmodels / AccountViewModel.java
package com.example.nemophila.viewmodels;

import com.example.nemophila.entities.Account;
import com.example.nemophila.resources.AccountsRest;

import androidx.lifecycle.ViewModel;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;

public class AccountViewModel extends ViewModel {
    // フィールド
    private final Retrofit retrofit;
    private final AccountsRest accountsRest;

    // アカウントインスタンス
    private Account account;

    // コンストラクタ
    public AccountViewModel() {
        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.account = new Account();
    }

    // アカウント情報の取得
    public void getAccount(String uid) {
        Call<Account> call = accountsRest.getAccount(uid);

        call.enqueue(new Callback<Account>() {
            @Override
            public void onResponse(Call<Account> call, Response<Account> response) {
                if (response.isSuccessful()) {
                    account = response.body();
                } else {
                    // エラー
                }
            }
            @Override
            public void onFailure(Call<Account> call, Throwable t) {
                // エラー
            }
        });
    }

    // アカウント名の変更
    public void changeName(String uid, String name, String token) {
        Call<Void> call = accountsRest.changeName(uid, name, token);

        call.enqueue(new Callback<Void>() {
            @Override
            public void onResponse(Call<Void> call, Response<Void> response) {
                if (response.isSuccessful()) {
                    // サクセスフル
                } else {
                    // エラー
                }
            }
            @Override
            public void onFailure(Call<Void> call, Throwable t) {
                // エラー
            }
        });
    }
}