diff --git a/app/src/main/java/com/example/citrusclient/models/Book.java b/app/src/main/java/com/example/citrusclient/models/Book.java index 7f2cc6f..eea8a6d 100644 --- a/app/src/main/java/com/example/citrusclient/models/Book.java +++ b/app/src/main/java/com/example/citrusclient/models/Book.java @@ -7,6 +7,7 @@ private boolean publicity; private String color; private String accountId; + private String time; public Book(String accountId, Integer bookId, String title, boolean publicity, String color) { @@ -17,12 +18,17 @@ this.color = color; } + public Book(){ + + } + //Setter public void setTitle(String t) {title = t;} public void setPublicity(boolean p) {publicity = p;} public void setColor(String c) {color = c;} public void setBookId(int id) {bookId = id;} public void setAccountId(String a) {accountId = a;} + public void setTime(String ti) {time = ti;} //Getter public String getTitle() {return title;} @@ -30,4 +36,5 @@ public String getColor() {return color;} public int getBookId() {return bookId;} public String getAccountId() {return accountId;} + public String getTime() {return time;} } diff --git a/app/src/main/java/com/example/citrusclient/viewmodels/BooksViewModel.java b/app/src/main/java/com/example/citrusclient/viewmodels/BooksViewModel.java index f406770..e1e54fe 100644 --- a/app/src/main/java/com/example/citrusclient/viewmodels/BooksViewModel.java +++ b/app/src/main/java/com/example/citrusclient/viewmodels/BooksViewModel.java @@ -83,14 +83,16 @@ @Override public void onResponse(Call> call, Response> response) { if (response.isSuccessful()) { + System.out.println(response.code()); HashMap book = response.body(); booksLiveData.setValue(book); - } + System.out.println(response.code()); + }else System.out.println(response.code()); } @Override public void onFailure(Call> call, Throwable t) { - + System.out.println("fail"); } }); } diff --git a/app/src/main/java/com/example/citrusclient/viewmodels/TodoViewModel.java b/app/src/main/java/com/example/citrusclient/viewmodels/TodoViewModel.java deleted file mode 100644 index 41deb9e..0000000 --- a/app/src/main/java/com/example/citrusclient/viewmodels/TodoViewModel.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.example.citrusclient.viewmodels; - -import androidx.lifecycle.ViewModel; - -public class TodoViewModel extends ViewModel { -} diff --git a/app/src/main/java/com/example/citrusclient/viewmodels/TodosViewModel.java b/app/src/main/java/com/example/citrusclient/viewmodels/TodosViewModel.java new file mode 100644 index 0000000..0d9935a --- /dev/null +++ b/app/src/main/java/com/example/citrusclient/viewmodels/TodosViewModel.java @@ -0,0 +1,232 @@ +package com.example.citrusclient.viewmodels; + +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +import com.example.citrusclient.models.Todo; +import com.example.citrusclient.models.Book; +import com.example.citrusclient.rest.TodosRest; + + +import java.util.ArrayList; +import java.util.HashMap; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + +public class TodosViewModel extends ViewModel { + private final Retrofit retrofit; + private final TodosRest todosRest; + + //LiveData + private final MutableLiveData>>>> allTodosLiveData; + private final MutableLiveData>> TodosByMonthLiveData; + private final MutableLiveData> TodosByDayLiveData; + private final MutableLiveData TodoByIdLiveData; + private final MutableLiveData errorLiveData; + + //Constructor + public TodosViewModel() + { + this.retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/citrus/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + this.todosRest = retrofit.create(TodosRest.class); + this.allTodosLiveData = new MutableLiveData<>(); + this.TodosByMonthLiveData = new MutableLiveData<>(); + this.TodosByDayLiveData = new MutableLiveData<>(); + this.TodoByIdLiveData = new MutableLiveData<>(); + this.errorLiveData = new MutableLiveData<>(); + } + + //LiveData恮getter + public MutableLiveData>>>> getAllTodosLiveData() + { + return allTodosLiveData; + } + public MutableLiveData>> getTodosByMonthLiveData() {return TodosByMonthLiveData;} + public MutableLiveData> getTodosByDayLiveData() {return TodosByDayLiveData;} + public MutableLiveData getTodoByIdLiveData() {return TodoByIdLiveData;} + public MutableLiveData getErrorLiveData() {return errorLiveData;} + + + public void getAllTodos(String accountId,Integer bookId, String token) + { + Call>>>> call = todosRest.getAllTodos(accountId, bookId, token); + call.enqueue(new Callback>>>>() { + @Override + public void onResponse(Call>>>> call, Response>>>> response) { + if (response.isSuccessful()) { + System.out.println("Success: getAllTodos"); + allTodosLiveData.setValue(response.body()); + } else { + System.out.println("Error: getAllTodos" + response.code()); + errorLiveData.setValue(parseStatusCode(response.code())); + } + } + @Override + public void onFailure(Call>>>> call, Throwable t) { + System.out.println("CommunicationError: getAllTodos" + t); + errorLiveData.setValue(parseStatusCode(-1)); + } + + }); + } + + public void getTodosByMonth(String accountId,Integer bookId, Integer year, Integer month, + String token) + { + Call>> call = todosRest.getTodosByMonth(accountId, bookId, year, month, token); + call.enqueue(new Callback>>() { + @Override + public void onResponse(Call>> call, Response>> response) { + if (response.isSuccessful()) { + System.out.println("Success: getTodosByMonth"); + TodosByMonthLiveData.setValue(response.body()); + } else { + System.out.println("Error: getTodosByMonth" + response.code()); + } + } + @Override + public void onFailure(Call>> call, Throwable t) { + System.out.println("CommunicationError: getTodosByMonth" + t); + errorLiveData.setValue(parseStatusCode(-1)); + } + + }); + } + + public void getTodosByDay(String accountId,Integer bookId, Integer year, Integer month, + Integer day, String token) + { + Call> call = todosRest.getTodosByDay(accountId, bookId, year, month, day, token); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.isSuccessful()) { + System.out.println("Success: getTodosByDay"); + TodosByDayLiveData.setValue(response.body()); + } else { + System.out.println("Error: getTodosByDay" + response.code()); + } + } + @Override + public void onFailure(Call> call, Throwable t) { + System.out.println("CommunicationError: getTodosByDay" + t); + errorLiveData.setValue(parseStatusCode(-1)); + } + + }); + } + + public void getTodoById(String accountId,Integer bookId, Integer year, Integer month, + Integer day, Integer todoId, String token) + { + Call call = todosRest.getTodoById(accountId, bookId, year, month, day, todoId, token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("Success: getTodoById"); + TodoByIdLiveData.setValue(response.body()); + } else { + System.out.println("Error: getTodoById" + response.code()); + } + } + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("CommunicationError: getTodoById" + t); + errorLiveData.setValue(parseStatusCode(-1)); + } + + }); + } + + public void createTodo(String accountId,Integer bookId, Integer year, Integer month, + Integer day, String title, String token) + { + Call call = todosRest.createTodo(accountId, bookId, year, month, day, title, token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("Success: createTodo"); + TodoByIdLiveData.setValue(response.body()); + } else { + System.out.println("Error: createTodo" + response.code()); + } + } + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("CommunicationError: createTodo" + t); + errorLiveData.setValue(parseStatusCode(-1)); + } + + }); + } + + public void setCheck(String accountId, Integer BookId, Integer year, Integer month, + Integer day, Integer todoId, boolean check, String token) + { + Call call = todosRest.setCheck(accountId, BookId, year, month, day, todoId, check, token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("Success: setCheck"); + + } else { + System.out.println("Error: setCheck" + response.code()); + } + } + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("CommunicationError: setCheck" + t); + errorLiveData.setValue(parseStatusCode(-1)); + } + }); + } + + public void deleteTodo(String accountId, Integer BookId, Integer year, Integer month, + Integer day, Integer todoId, String token) + { + Call call = todosRest.deleteTodoById(accountId, BookId, year, month, day, todoId, token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("Success: deleteTodo"); + + } else { + System.out.println("Error: deleteTodo" + response.code()); + } + } + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("CommunicationError: deleteTodo" + t); + errorLiveData.setValue(parseStatusCode(-1)); + } + }); + } + + + + private String parseStatusCode(Integer stats) { + switch (stats) { + case 404: + return "NotFound"; + case 401: + return "InvalidToken"; + case 400: + return "ResponseError"; + case 500: + return "ServerError"; + default: + return "UnknownError"; + } + } +}