add error_message on curl error+json_decode error
authorXavier Dutoit <xavier@tttp.eu>
Wed, 4 Sep 2013 09:44:49 +0000 (11:44 +0200)
committerChris Burgess <chris@giantrobot.co.nz>
Wed, 4 Sep 2013 22:19:04 +0000 (10:19 +1200)
api/class.api.php

index 06bc404ec5a34c51719e9f6bf450d357cf2f4d3b..f6c9f500b4a8c6b70621e8eae04b7944776a8bb2 100644 (file)
@@ -173,11 +173,22 @@ class civicrm_api3 {
       if (curl_errno($ch)) {
         $res = new stdClass;
         $res->is_error = 1;
+        $res->error_message = curl_error($ch);
+        $res->level = "cURL";
         $res->error = array('cURL error' => curl_error($ch));
         return $res;
       }
       curl_close($ch);
-      return json_decode($result);
+      $res = json_decode($result);
+      if (!$res) {
+        $res = new stdClass;
+        $res->is_error = 1;
+        $res->error_message = "not a valid json returned by the server";
+        $res->level = "json_decode";
+        $res->row_result = $result;
+        
+      }
+      return $res;
     }
     else {
       // Should be discouraged, because the API credentials and data