From b8fb3c33186806a77af3280851c670e0a6d19af4 Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期六, 05 八月 2023 17:05:32 +0800
Subject: [PATCH] Fixed: [弱掃] p10.2 Bad use of null-like value

---
 PAMapp/store/index.ts |   39 +++++++++++++++++++++++++--------------
 1 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/PAMapp/store/index.ts b/PAMapp/store/index.ts
index cd5d2fe..9ddc1b6 100644
--- a/PAMapp/store/index.ts
+++ b/PAMapp/store/index.ts
@@ -131,25 +131,36 @@
 
     @Action
     async addToMyConsultantList(consultantToAdd: Consultant) {
-        if (consultantToAdd) {
-            const found = this.myConsultantList.find(item => item.agentNo === consultantToAdd.agentNo);
-            if (!found) {
-                const newData = [consultantToAdd].concat(this.myConsultantList);
-                if (this.isUserLogin) {
-                    await queryConsultantService.addFavoriteConsultant([{ agentNo: consultantToAdd.agentNo, createdTime: consultantToAdd.updateTime  }])
-                } else {
-                    setFavoriteToStorage(newData);
-                }
+    if (consultantToAdd) {
+      const found = this.myConsultantList.find(item => item.agentNo === consultantToAdd.agentNo);
+      if (!found) {
+        const newData = [consultantToAdd].concat(this.myConsultantList);
 
-                this.context.commit('updateConsultantList', newData)
-
-                return true;
+        if (this.isUserLogin) {
+          try {
+            const response = await queryConsultantService.addFavoriteConsultant([{ agentNo: consultantToAdd.agentNo, createdTime: consultantToAdd.updateTime }]);
+            if (response !== null) {
+              this.context.commit('updateConsultantList', newData);
+              return true;
+            } else {
+              throw new Error('queryConsultantService.addFavoriteConsultant returned null-like value.');
             }
+          } catch (error) {
+            console.error('An error occurred while adding favorite consultant:', error);
+            throw error;
+          }
+        } else {
+          setFavoriteToStorage(newData);
+          this.context.commit('updateConsultantList', newData);
+          return true;
         }
-
-        return false;
+      }
     }
 
+    return false;
+  }
+
+
     @Action
     storeMyAppointmentReviewLog() {
         reviewsService.getMyReviewLog().then((data) => {

--
Gitblit v1.8.0