Przeglądaj źródła

[마이][New] 버킷리스트 추가 새 API 반영
- 리스트와 태그를 로드하지 않아도 된다.

hyodong.min 7 lat temu
rodzic
commit
8b6ecc998d

+ 2 - 1
app/src/common/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPIService.java

@@ -19,6 +19,7 @@ import kr.co.zumo.app.lifeplus.bean.api.BucketListTagResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketMyListResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketNumberRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketRegisterRequestBean;
+import kr.co.zumo.app.lifeplus.bean.api.BucketRegisterResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketUpdateRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.CategoryBannerResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.CategoryContentsResultBean;
@@ -391,7 +392,7 @@ public class LifeplusAPIService extends RetrofitService implements LifeplusAPI {
    * @return
    */
   @Override
-  public Single<LifeplusAPIBean> registerMyBucket(BucketRegisterRequestBean bean) {
+  public Single<BucketRegisterResultBean> registerMyBucket(BucketRegisterRequestBean bean) {
     return api().registerMyBucket(bean);
   }
 

+ 18 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/bean/api/BucketRegisterResultBean.java

@@ -0,0 +1,18 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.bean.api;
+
+/**
+ * BucketUpdateRequestBean
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018. 11. 8.]   [최초 작성]
+ * @since 2018. 11. 8.
+ */
+public class BucketRegisterResultBean extends LifeplusAPIResultBean<BucketWithTagBean> {
+
+}

+ 3 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/model/module/APIBucketRegisterModule.java

@@ -5,7 +5,7 @@ package kr.co.zumo.app.lifeplus.model.module;
 
 import io.reactivex.Single;
 import kr.co.zumo.app.lifeplus.bean.api.BucketRegisterRequestBean;
-import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
+import kr.co.zumo.app.lifeplus.bean.api.BucketRegisterResultBean;
 import kr.co.zumo.app.lifeplus.network.api.LifeplusAPIRepository;
 
 /**
@@ -19,9 +19,9 @@ import kr.co.zumo.app.lifeplus.network.api.LifeplusAPIRepository;
  * @history 민효동   [2018. 11. 13.]   [최초 작성]
  * @since 2018. 11. 13.
  */
-public class APIBucketRegisterModule extends APIModule<BucketRegisterRequestBean, LifeplusAPIBean> {
+public class APIBucketRegisterModule extends APIModule<BucketRegisterRequestBean, BucketRegisterResultBean> {
   @Override
-  protected Single<LifeplusAPIBean> getAPI(BucketRegisterRequestBean requestBean) {
+  protected Single<BucketRegisterResultBean> getAPI(BucketRegisterRequestBean requestBean) {
     return new LifeplusAPIRepository().registerMyBucket(requestBean);
   }
 }

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPI.java

@@ -19,6 +19,7 @@ import kr.co.zumo.app.lifeplus.bean.api.BucketListTagResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketMyListResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketNumberRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketRegisterRequestBean;
+import kr.co.zumo.app.lifeplus.bean.api.BucketRegisterResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketUpdateRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.CategoryBannerResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.CategoryContentsResultBean;
@@ -173,7 +174,7 @@ public interface LifeplusAPI {
 
   // 버킷 리스트 등록
   @POST("mapi/my/insbucket.plus")
-  Single<LifeplusAPIBean> registerMyBucket(@Body BucketRegisterRequestBean bean);
+  Single<BucketRegisterResultBean> registerMyBucket(@Body BucketRegisterRequestBean bean);
 
   // 버킷 리스트 수정
   @POST("mapi/my/updbucket.plus")

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPIRepository.java

@@ -19,6 +19,7 @@ import kr.co.zumo.app.lifeplus.bean.api.BucketListTagResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketMyListResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketNumberRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketRegisterRequestBean;
+import kr.co.zumo.app.lifeplus.bean.api.BucketRegisterResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketUpdateRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.CategoryBannerResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.CategoryContentsResultBean;
@@ -183,7 +184,7 @@ public class LifeplusAPIRepository implements LifeplusAPI {
   }
 
   @Override
-  public Single<LifeplusAPIBean> registerMyBucket(BucketRegisterRequestBean bean) {
+  public Single<BucketRegisterResultBean> registerMyBucket(BucketRegisterRequestBean bean) {
     return new LifeplusAPIService().registerMyBucket(bean);
   }
 

+ 18 - 57
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bucketlist/AddMyBucketListModel.java

@@ -6,10 +6,9 @@ import java.util.List;
 import io.reactivex.disposables.Disposable;
 import kr.co.zumo.app.lifeplus.bean.api.BucketBackgroundListResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketCompleteRequestBean;
-import kr.co.zumo.app.lifeplus.bean.api.BucketListResultBean;
-import kr.co.zumo.app.lifeplus.bean.api.BucketListTagResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketNumberRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketRegisterRequestBean;
+import kr.co.zumo.app.lifeplus.bean.api.BucketRegisterResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketUpdateRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketWithTagBean;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
@@ -17,13 +16,11 @@ import kr.co.zumo.app.lifeplus.bean.api.LifeplusData;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusImageBean;
 import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.TagBean;
-import kr.co.zumo.app.lifeplus.bean.api.TitleRequestBean;
 import kr.co.zumo.app.lifeplus.model.Model;
 import kr.co.zumo.app.lifeplus.model.module.APIBucketBackgroundListModule;
 import kr.co.zumo.app.lifeplus.model.module.APIBucketCompleteModule;
 import kr.co.zumo.app.lifeplus.model.module.APIBucketDeleteModule;
 import kr.co.zumo.app.lifeplus.model.module.APIBucketRegisterModule;
-import kr.co.zumo.app.lifeplus.model.module.APIBucketTagListModule;
 import kr.co.zumo.app.lifeplus.model.module.APIBucketUpdateModule;
 import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
 import kr.co.zumo.app.lifeplus.view.Event;
@@ -49,10 +46,10 @@ public class AddMyBucketListModel extends Model {
   private int selectedIndex = 0;  // 선택 인덱스
 
   private String bucketText = "";
-  private Disposable disposableTag;
   private ArrayList<TagBean> tags;
 
   private BucketWithTagBean bucketMyBeanForEditing;
+  private BucketWithTagBean addedBucketMyBean;
 
   public AddMyBucketListModel() {
   }
@@ -147,32 +144,27 @@ public class AddMyBucketListModel extends Model {
       return;
     }
 
-    disposableRegister = new APIBucketRegisterModule().call(new BucketRegisterRequestBean(getUserName(), bucketText, bucketBackgroundList.get(selectedIndex).getImageNumber()), new IAPIModuleListener<LifeplusAPIBean>() {
+    disposableRegister = new APIBucketRegisterModule().call(new BucketRegisterRequestBean(getUserName(), bucketText, bucketBackgroundList.get(selectedIndex).getImageNumber()), new IAPIModuleListener<BucketRegisterResultBean>() {
+
       @Override
-      public void onApiSuccess(LifeplusAPIBean resultBean) {
-        //todo 버킷 리스트 하나를 등록하면 해당 bucket (BucketBean) 에 대한 정보를 받아와야 한다.
+      public void onApiSuccess(BucketRegisterResultBean resultBean) {
+        addedBucketMyBean = resultBean.getData();
 
-        // 리스트 갱신
-        disposableRegister = BucketListModelHelper.getInstance().refresh(new IAPIModuleListener<BucketListResultBean>() {
-          @Override
-          public void onApiSuccess(BucketListResultBean resultBean) {
-            onResult(new Event.Builder(Event.SUCCESS).build());
-          }
+        if (null != addedBucketMyBean) {
+          // 버킷 추가
+          BucketListModelHelper.getInstance().addBucket(addedBucketMyBean);
+          // 태그 추가
+          tags = addedBucketMyBean.getTagList();
 
-          @Override
-          public void onApiReason(BucketListResultBean resultBean) {
-            onResult(new Event.Builder(Event.SUCCESS).build());
-          }
-
-          @Override
-          public void onApiError(String errorMessage) {
-            onResult(new Event.Builder(Event.SUCCESS).build());
-          }
-        });
+          onResult(new Event.Builder(Event.SUCCESS).build());
+        }
+        else {
+          onResult(new Event.Builder(Event.ERROR).string("등록 오류.").build());
+        }
       }
 
       @Override
-      public void onApiReason(LifeplusAPIBean resultBean) {
+      public void onApiReason(BucketRegisterResultBean resultBean) {
         onResult(new Event.Builder(Event.ERROR).string(resultBean.getReturnMessage()).build());
       }
 
@@ -273,29 +265,6 @@ public class AddMyBucketListModel extends Model {
     });
   }
 
-  /**
-   * 관련 태그 로딩
-   */
-  public void loadTag() {
-    disposableTag = new APIBucketTagListModule().call(new TitleRequestBean(bucketText), new IAPIModuleListener<BucketListTagResultBean>() {
-      @Override
-      public void onApiSuccess(BucketListTagResultBean resultBean) {
-        tags = resultBean.getData();
-        onResult(new Event.Builder(Event.TAG).build());
-      }
-
-      @Override
-      public void onApiReason(BucketListTagResultBean resultBean) {
-        onResult(new Event.Builder(Event.ERROR).string(resultBean.getReturnMessage()).build());
-      }
-
-      @Override
-      public void onApiError(String errorMessage) {
-        onResult(new Event.Builder(Event.ERROR).string(errorMessage).build());
-      }
-    });
-  }
-
   /**
    * 로드 중지
    */
@@ -308,10 +277,6 @@ public class AddMyBucketListModel extends Model {
       disposableRegister.dispose();
       disposableRegister = null;
     }
-    if (null != disposableTag) {
-      disposableTag.dispose();
-      disposableTag = null;
-    }
     if (null != disposableAchieve) {
       disposableAchieve.dispose();
       disposableAchieve = null;
@@ -372,11 +337,7 @@ public class AddMyBucketListModel extends Model {
    * @return
    */
   public BucketWithTagBean getAddedBucketMyBean() {
-    BucketWithTagBean bean = new BucketWithTagBean();
-    bean.setImageUrl(bucketBackgroundList.get(selectedIndex).getImageUrl());
-    bean.setTitle(bucketText);
-    bean.setCompleted(LifeplusData.FALSE);
-    return bean;
+    return addedBucketMyBean;
   }
 
   /**

+ 1 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bucketlist/AddMyBucketListPresenter.java

@@ -217,10 +217,7 @@ public class AddMyBucketListPresenter extends Presenter<AddMyBucketListModel, IA
         break;
       case Event.SUCCESS:
         // 등록 완료
-        // 연관 태그 검색해서 처리해줌
-        model.loadTag();
-        break;
-      case Event.TAG:
+        // 연관 태그 처리해줌
         ArrayList<TagBean> list = model.getTags();
         if (null != list && list.size() > 0) {
           // -> 태그 있음 -> 연관 태그 리스트 페이지 이동

+ 8 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bucketlist/BucketListModelHelper.java

@@ -3,6 +3,8 @@
  */
 package kr.co.zumo.app.lifeplus.view.screen.my.bucketlist;
 
+import android.util.Log;
+
 import java.util.ArrayList;
 
 import io.reactivex.disposables.Disposable;
@@ -71,7 +73,12 @@ public class BucketListModelHelper {
     if (null == bucketList) {
       bucketList = new ArrayList<>();
     }
-    bucketList.add(0, bean);
+    if (null != bean) {
+      bucketList.add(0, bean);
+    }
+    else {
+      Log.e("APP#  BucketListModelHelper | addBucket", "|" + "bean is null ~~~~~~~~ ");
+    }
   }
 
   /**

+ 4 - 2
app/src/sandbox/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPIService.java

@@ -327,9 +327,11 @@ public class LifeplusAPIService implements LifeplusAPI {
   }
 
   @Override
-  public Single<LifeplusAPIBean> registerMyBucket(BucketRegisterRequestBean bean) {
+  public Single<BucketRegisterResultBean> registerMyBucket(BucketRegisterRequestBean bean) {
     return Single.fromCallable(() -> {
-      return new LifeplusAPIBean(LifeplusAPIBean.RETURN_SUCCESS, "");
+      String result = "{\"data\":[{\"bucketNo\":201811190000000135,\"titl\":\"Insert..Bucket-002\",\"achvYn\":\"N\",\"imagFileUrl\":\"http://image.hwlife.hscdn.com/resource/contents/201508240000025699/201508240000000162/3166b3e5651652e6040313b239664d0e.jpg\",\"tagList\":[{\"tagNo\":201607260000000429,\"tagName\":\"벽화\",\"useCnt\":0},{\"tagNo\":201607260000000430,\"tagName\":\"펍\",\"useCnt\":0}]}],\"rtn_message\":\"성공\",\"sp_rtn\":0}";
+
+      return new Gson().fromJson(result, BucketRegisterResultBean.class);
     });
   }