Sfoglia il codice sorgente

handle possible error on API call

k.niemeskern 2 anni fa
parent
commit
80b24ab42f
2 ha cambiato i file con 33 aggiunte e 21 eliminazioni
  1. 32 19
      index.js
  2. 1 2
      lib/API.js

+ 32 - 19
index.js

@@ -30,17 +30,27 @@ console.log("[process env TOKEN] =>", process.env.access_token);
 console.log("[process env expire] =>", process.env.expire);
 
 async function watchLinkedin(){
-    try {
-        const followersNb = await API.getCompanyID(info);
-
-        if (followersNb.firstDegreeSize) {
-            console.log("[getCompanyID]", followersNb.firstDegreeSize)
-            info.followers = followersNb.firstDegreeSize
-            process.env.lastFollowers = info.followers
-        }
-
-    } catch(err) {
-        console.log("[watchLinkedin ERROR]", err);
+    if (info.active){
+
+        await API.getCompanyFollowers(info).then( (followersNb) => {
+
+            if (followersNb.firstDegreeSize) {
+                info.followers = followersNb.firstDegreeSize
+                process.env.lastFollowers = info.followers
+                // cleanUp error
+                info.error = 0
+
+                res.json(info.followers)
+            }
+
+        }).catch( (err) => {
+            console.log("[watchLinkedin]", err);
+            info.error++
+            if (info.error > 50) {
+                info.active = false
+                mail.notif(process.env.usermail, process.env.pswd, process.env.contact);
+            }
+        })
     }
 }
 
@@ -71,14 +81,17 @@ app.get('/test', async (req, res) => {
 
 app.get('/company', async (req, res) => {
     try {
-        const followersNb = await API.getCompanyID(info);
-
-        if (followersNb.firstDegreeSize) {
-            console.log("[getCompanyID]", followersNb.firstDegreeSize)
-            info.followers = followersNb.firstDegreeSize
-            process.env.lastFollowers = info.followers
-            res.json(id)
-        } else res.json({"error": "firstDegreeSize not available"})
+        await API.getCompanyFollowers(info)
+        .then( (followersNb) => {
+            if (followersNb.firstDegreeSize) {
+                info.followers = followersNb.firstDegreeSize
+                process.env.lastFollowers = info.followers
+                res.json(info.followers)
+            } else res.json({"error": "firstDegreeSize not available"})
+        }).catch( (err) => {
+            info.error++
+            if (info.error > 50) mail.notif(process.env.usermail, process.env.pswd, process.env.contact);
+        })
 
     } catch(err) {
         res.send(err);

+ 1 - 2
lib/API.js

@@ -23,7 +23,7 @@ class API {
         });
     }
 
-    static getCompanyID(info) {
+    static getCompanyFollowers(info) {
         return new Promise((resolve, reject) => {
             const param = encodeURIComponent(`urn:li:organization:`)+info.companyID+'?edgeType=CompanyFollowedByMember'
             const url = `https://api.linkedin.com/v2/networkSizes/${param}`;
@@ -38,7 +38,6 @@ class API {
                     console.log("getCompanyID error reject", err)
                     reject(err);
                 }
-                console.log("getCompanyID error resolve", body)
                 resolve(JSON.parse(body));
             });
         });