Merge pull request '子供を追加できるように' (#134) from feature/add_child_impl into main

Reviewed-on: #134
This commit is contained in:
Fujimatsu 2024-07-05 02:42:10 +00:00
commit c25e9837f8
3 changed files with 24 additions and 7 deletions

View File

@ -31,7 +31,7 @@ public interface ChildData {
* 子ユーザー追加 * 子ユーザー追加
* @param child 子ユーザー情報 * @param child 子ユーザー情報
*/ */
void addChild(ChildModel child); CompletableFuture<ChildModel> addChild(ChildModel child);
/** /**
* 子ユーザー削除 * 子ユーザー削除

View File

@ -10,6 +10,8 @@ import one.nem.kidshift.data.ChildData;
import one.nem.kidshift.data.KSActions; import one.nem.kidshift.data.KSActions;
import one.nem.kidshift.data.retrofit.KidShiftApiService; import one.nem.kidshift.data.retrofit.KidShiftApiService;
import one.nem.kidshift.data.retrofit.model.child.ChildLoginCodeResponse; import one.nem.kidshift.data.retrofit.model.child.ChildLoginCodeResponse;
import one.nem.kidshift.data.retrofit.model.child.ChildResponse;
import one.nem.kidshift.data.retrofit.model.converter.ChildModelConverter;
import one.nem.kidshift.data.room.utils.CacheWrapper; import one.nem.kidshift.data.room.utils.CacheWrapper;
import one.nem.kidshift.model.ChildModel; import one.nem.kidshift.model.ChildModel;
import one.nem.kidshift.model.callback.ChildModelCallback; import one.nem.kidshift.model.callback.ChildModelCallback;
@ -92,8 +94,22 @@ public class ChildDataImpl implements ChildData {
} }
@Override @Override
public void addChild(ChildModel child) { public CompletableFuture<ChildModel> addChild(ChildModel child) {
return CompletableFuture.supplyAsync(() -> {
Call<ChildResponse> call = kidShiftApiService.addChild(ChildModelConverter.childModelToChildAddRequest(child));
try {
Response<ChildResponse> response = call.execute();
if (response.isSuccessful()) {
assert response.body() != null;
logger.info("子供追加成功(childId: " + response.body().getId() + ")");
return ChildModelConverter.childResponseToChildModel(response.body());
} else {
throw new RuntimeException("HTTP Status: " + response.code());
}
} catch (Exception e) {
throw new RuntimeException(e);
}
});
} }
@Override @Override

View File

@ -243,10 +243,11 @@ public class SettingMainFragment extends Fragment {
.setPositiveButton("追加", (dialog, which) -> { .setPositiveButton("追加", (dialog, which) -> {
ChildModel childModel = new ChildModel(); ChildModel childModel = new ChildModel();
childModel.setName(Objects.requireNonNull(((TextView) dialogView.findViewById(R.id.childNameEditText)).getText()).toString()); childModel.setName(Objects.requireNonNull(((TextView) dialogView.findViewById(R.id.childNameEditText)).getText()).toString());
childData.addChild(childModel); childData.addChild(childModel).thenAccept(childModel1 -> { // Debug
// debug logger.debug("子供を追加しました: " + childModel1.getName());
logger.debug("子供を追加しました: " + childModel.getName()); }).thenRun(() -> {
updateChildInfo(); updateChildInfo();
});
}) })
.setNeutralButton("閉じる", (dialog, which) -> { .setNeutralButton("閉じる", (dialog, which) -> {
dialog.cancel(); dialog.cancel();