From 948d043eb262ac46f81817dde761b597c39e1752 Mon Sep 17 00:00:00 2001
From: Chi Chang <edingroot@gmail.com>
Date: Sun, 30 Aug 2020 18:22:52 +0800
Subject: [PATCH] Fix ue info api error handling

---
 frontend/src/redux/actions/ueinfoActions.js | 114 ++++++++++----------
 frontend/src/util/UEInfoApiHelper.js        |  12 ++-
 2 files changed, 67 insertions(+), 59 deletions(-)

diff --git a/frontend/src/redux/actions/ueinfoActions.js b/frontend/src/redux/actions/ueinfoActions.js
index 93c9cb0..d803651 100644
--- a/frontend/src/redux/actions/ueinfoActions.js
+++ b/frontend/src/redux/actions/ueinfoActions.js
@@ -1,56 +1,60 @@
 export default class ueinfoActions {
-    static SET_REG_UE = 'UEINFO/SET_REG_UE';
-    static SET_UE_DETAIL = 'UEINFO/SET_UE_DETAIL';
-    static SET_UE_DETAIL_AMF = 'UEINFO/SET_UE_DETAIL_AMF'
-    static SET_UE_DETAIL_SMF = 'UEINFO/SET_UE_DETAIL_SMF'
-    static SET_REG_UE_ERR = 'UEINFO/SET_REG_UE_ERR';
-    static SET_UE_DETAIL_SM_CTX_REF = 'UEINFO/SET_UE_DETAIL_SM_CTX_REF'
-  
-    /**
-     * @param users  {User}
-     */
-    static setRegisteredUE(users) {
-      return {
-        type: this.SET_REG_UE,
-        registered_users: users,
-      };
-    }
-  
-    static setUEInfoDetail(ueInfoDetail) {
-      return {
-        type: this.SET_UE_DETAIL,
-        ueInfoDetail: ueInfoDetail,
-      };
-    }
-
-    static setUEInfoDetailAMF(AMFDetail) {
-      return {
-        type: this.SET_UE_DETAIL_AMF,
-        amfInfo: AMFDetail
-      };
-    }
-
-    static setUEInfoDetailSMF(SMFDetail) {
-      return {
-        type: this.SET_UE_DETAIL_SMF,
-        smfInfo: SMFDetail
-      };
-    }
-
-    static setUEInfoDetailSmContextRef(smContextRef) {
-      return {
-        type: this.SET_UE_DETAIL_SM_CTX_REF,
-        smContextRef: smContextRef
-      };
-
-    }
-
-    static setRegisteredUEError(errMsg) {
-      return {
-        type: this.SET_REG_UE_ERR,
-        get_registered_ue_err: true,
-        registered_ue_err_msg: errMsg
-      };
-
-    }
-  }
\ No newline at end of file
+  static SET_REG_UE = 'UEINFO/SET_REG_UE';
+  static SET_UE_DETAIL = 'UEINFO/SET_UE_DETAIL';
+  static SET_UE_DETAIL_AMF = 'UEINFO/SET_UE_DETAIL_AMF'
+  static SET_UE_DETAIL_SMF = 'UEINFO/SET_UE_DETAIL_SMF'
+  static SET_REG_UE_ERR = 'UEINFO/SET_REG_UE_ERR';
+  static SET_UE_DETAIL_SM_CTX_REF = 'UEINFO/SET_UE_DETAIL_SM_CTX_REF'
+
+  static setRegisteredUE(users) {
+    return {
+      type: this.SET_REG_UE,
+      registered_users: users,
+    };
+  }
+
+  static setUEInfoDetail(ueInfoDetail) {
+    return {
+      type: this.SET_UE_DETAIL,
+      ueInfoDetail: ueInfoDetail,
+    };
+  }
+
+  static setUEInfoDetailAMF(AMFDetail) {
+    return {
+      type: this.SET_UE_DETAIL_AMF,
+      amfInfo: AMFDetail
+    };
+  }
+
+  static setUEInfoDetailSMF(SMFDetail) {
+    return {
+      type: this.SET_UE_DETAIL_SMF,
+      smfInfo: SMFDetail
+    };
+  }
+
+  static setUEInfoDetailSmContextRef(smContextRef) {
+    return {
+      type: this.SET_UE_DETAIL_SM_CTX_REF,
+      smContextRef: smContextRef
+    };
+  }
+
+  static setRegisteredUEError(errMsg) {
+    return {
+      type: this.SET_REG_UE_ERR,
+      get_registered_ue_err: true,
+      registered_ue_err_msg: errMsg
+    };
+  }
+
+  static unsetRegisteredUEError() {
+    return {
+      type: this.SET_REG_UE_ERR,
+      get_registered_ue_err: false,
+      registered_ue_err_msg: ''
+    };
+  }
+
+}
diff --git a/frontend/src/util/UEInfoApiHelper.js b/frontend/src/util/UEInfoApiHelper.js
index bd29de7..dbfc7b8 100644
--- a/frontend/src/util/UEInfoApiHelper.js
+++ b/frontend/src/util/UEInfoApiHelper.js
@@ -6,6 +6,8 @@ import UEInfo from "../models/UEInfo";
 class UeInfoApiHelper {
 
   static async fetchRegisteredUE() {
+    const MSG_FETCH_ERROR = "Error fetching registered UEs. Is the core network up?";
+
     try {
       let url =  "registered-ue-context"
       // console.log("Making request to ", url, " ....")
@@ -21,6 +23,7 @@ class UeInfoApiHelper {
         }
 
         store.dispatch(ueinfoActions.setRegisteredUE(registered_users));
+        store.dispatch(ueinfoActions.unsetRegisteredUEError());
         return true;
       } else {
         console.log("Request failed, url:", url)
@@ -30,17 +33,18 @@ class UeInfoApiHelper {
         if (response.data !== undefined){
           err_msg = response.data
         } else {
-          err_msg = "Error fetching registered UEs"
+          err_msg = MSG_FETCH_ERROR
         }
         store.dispatch(ueinfoActions.setRegisteredUEError(err_msg));
       }
     } catch (error) {
         let err_msg;
-        if (error.response !== undefined){
-          err_msg = error.response.data.cause
+        if (error.response && error.response.data){
+          err_msg = error.response.data.cause || MSG_FETCH_ERROR
         } else {
-          err_msg = "Error fetching registered UEs"
+          err_msg = MSG_FETCH_ERROR
         }
+        console.log(error.response);
         store.dispatch(ueinfoActions.setRegisteredUEError(err_msg));
     }
 
-- 
GitLab