feature/update_task #125

Merged
Fujimatsu merged 3 commits from feature/update_task into main 2024-07-03 14:21:47 +00:00
3 changed files with 30 additions and 3 deletions

View File

@ -39,7 +39,7 @@ public interface TaskData {
* タスクを更新する
* @param task タスク
*/
void updateTask(TaskItemModel task);
CompletableFuture<Void> updateTask(TaskItemModel task);
// 子側

View File

@ -9,6 +9,8 @@ import javax.inject.Inject;
import one.nem.kidshift.data.KSActions;
import one.nem.kidshift.data.TaskData;
import one.nem.kidshift.data.retrofit.KidShiftApiService;
import one.nem.kidshift.data.retrofit.model.converter.TaskModelConverter;
import one.nem.kidshift.data.retrofit.model.task.TaskResponse;
import one.nem.kidshift.data.room.utils.CacheWrapper;
import one.nem.kidshift.model.callback.TaskItemModelCallback;
import one.nem.kidshift.model.tasks.TaskItemModel;
@ -100,8 +102,23 @@ public class TaskDataImpl implements TaskData {
}
@Override
public void updateTask(TaskItemModel task) {
public CompletableFuture<Void> updateTask(TaskItemModel task) {
return CompletableFuture.supplyAsync(() -> {
Call<TaskResponse> call = kidShiftApiService.updateTask(TaskModelConverter.taskItemModelToTaskAddRequest(task), task.getId());
try {
Response<TaskResponse> response = call.execute();
if (response.isSuccessful()) {
logger.info("タスク更新成功(taskId: " + task.getId() + ")");
// return response.body();
return null;
} else {
logger.error("タスク更新失敗: HTTP Status: " + response.code());
throw new RuntimeException("HTTP Status: " + response.code());
}
} catch (Exception e) {
throw new RuntimeException(e);
}
});
}
@Override

View File

@ -3,6 +3,7 @@ package one.nem.kidshift.data.retrofit.model.converter;
import java.util.List;
import java.util.stream.Collectors;
import one.nem.kidshift.data.retrofit.model.task.TaskAddRequest;
import one.nem.kidshift.data.retrofit.model.task.TaskListResponse;
import one.nem.kidshift.data.retrofit.model.task.TaskResponse;
import one.nem.kidshift.model.tasks.TaskItemModel;
@ -47,4 +48,13 @@ public class TaskModelConverter {
public static List<TaskItemModel> taskListResponseToTaskItemModelList(TaskListResponse taskListResponse) {
return taskListResponse.getList().stream().map(TaskModelConverter::taskResponseToTaskItemModel).collect(Collectors.toList());
}
public static TaskAddRequest taskItemModelToTaskAddRequest(TaskItemModel taskItemModel) {
TaskAddRequest request = new TaskAddRequest();
request.setName(taskItemModel.getName());
request.setReward(taskItemModel.getReward());
request.setBgColor(taskItemModel.getBgColor());
request.setIconEmoji(taskItemModel.getIconEmoji());
return request;
}
}