Jelajahi Sumber

fix empty socks (#1520)

CauseFX 5 tahun lalu
induk
melakukan
df9121ade8
2 mengubah file dengan 12 tambahan dan 2 penghapusan
  1. 3 2
      api/classes/organizr.class.php
  2. 9 0
      api/functions/normal-functions.php

+ 3 - 2
api/classes/organizr.class.php

@@ -5778,6 +5778,7 @@ class Organizr
 			$url = $this->cleanPath($url);
 			$options = ($this->localURL($url)) ? array('verify' => false) : array();
 			$headers = [];
+			$apiData = $this->json_validator($this->apiData($requestObject)) ? json_encode($this->apiData($requestObject)) : $this->apiData($requestObject);
 			if ($header) {
 				if ($requestObject->hasHeader($header)) {
 					$headerKey = $requestObject->getHeaderLine($header);
@@ -5789,13 +5790,13 @@ class Organizr
 					$call = Requests::get($url, $headers, $options);
 					break;
 				case 'POST':
-					$call = Requests::post($url, $headers, $this->apiData($requestObject), $options);
+					$call = Requests::post($url, $headers, $apiData, $options);
 					break;
 				case 'DELETE':
 					$call = Requests::delete($url, $headers, $options);
 					break;
 				case 'PUT':
-					$call = Requests::put($url, $headers, $this->apiData($requestObject), $options);
+					$call = Requests::put($url, $headers, $apiData, $options);
 					break;
 				default:
 					$call = Requests::get($url, $headers, $options);

+ 9 - 0
api/functions/normal-functions.php

@@ -548,6 +548,15 @@ trait NormalFunctions
 		$factor = floor((strlen($bytes) - 1) / 3);
 		return sprintf("%.{$dec}f %s", $bytes / (1024 ** $factor), $size[$factor]);
 	}
+	
+	public function json_validator($data = null)
+	{
+		if (!empty($data)) {
+			@json_decode($data);
+			return (json_last_error() === JSON_ERROR_NONE);
+		}
+		return false;
+	}
 }
 
 // Leave for deluge class