diff --git a/data/src/main/java/one/nem/kidshift/data/ChildData.java b/data/src/main/java/one/nem/kidshift/data/ChildData.java index 75460be..bbbaa86 100644 --- a/data/src/main/java/one/nem/kidshift/data/ChildData.java +++ b/data/src/main/java/one/nem/kidshift/data/ChildData.java @@ -31,7 +31,7 @@ public interface ChildData { * 子ユーザー追加 * @param child 子ユーザー情報 */ - void addChild(ChildModel child); + CompletableFuture addChild(ChildModel child); /** * 子ユーザー削除 diff --git a/data/src/main/java/one/nem/kidshift/data/impl/ChildDataImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/ChildDataImpl.java index da43f6c..1e7d047 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/ChildDataImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/ChildDataImpl.java @@ -10,6 +10,8 @@ import one.nem.kidshift.data.ChildData; import one.nem.kidshift.data.KSActions; import one.nem.kidshift.data.retrofit.KidShiftApiService; 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.model.ChildModel; import one.nem.kidshift.model.callback.ChildModelCallback; @@ -92,8 +94,22 @@ public class ChildDataImpl implements ChildData { } @Override - public void addChild(ChildModel child) { - + public CompletableFuture addChild(ChildModel child) { + return CompletableFuture.supplyAsync(() -> { + Call call = kidShiftApiService.addChild(ChildModelConverter.childModelToChildAddRequest(child)); + try { + Response 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