Jelajahi Sumber

unify socks function and list

CauseFX 4 tahun lalu
induk
melakukan
bca20fe9d8
2 mengubah file dengan 78 tambahan dan 89 penghapusan
  1. 62 1
      api/classes/organizr.class.php
  2. 16 88
      api/v2/routes/socks.php

+ 62 - 1
api/classes/organizr.class.php

@@ -6079,8 +6079,69 @@ class Organizr
 		';
 	}
 	
-	public function socks($url, $enabled, $auth, $requestObject, $header = null, $multiple = null)
+	public function socksListing($app = null)
+	{
+		switch ($app) {
+			case 'sonarr':
+				$appDetails = [
+					'url' => 'sonarrURL',
+					'enabled' => 'sonarrSocksEnabled',
+					'auth' => 'sonarrSocksAuth',
+					'header' => 'X-Api-Key'
+				];
+				break;
+			case 'radarr':
+				$appDetails = [
+					'url' => 'radarrURL',
+					'enabled' => 'radarrSocksEnabled',
+					'auth' => 'radarrSocksAuth',
+					'header' => 'X-Api-Key'
+				];
+				break;
+			case 'lidarr':
+				$appDetails = [
+					'url' => 'lidarrURL',
+					'enabled' => 'lidarrSocksEnabled',
+					'auth' => 'lidarrSocksAuth',
+					'header' => 'X-Api-Key'
+				];
+				break;
+			case 'sabnzbd':
+				$appDetails = [
+					'url' => 'sabnzbdURL',
+					'enabled' => 'sabnzbdSocksEnabled',
+					'auth' => 'sonarrSocksAuth',
+					'header' => null
+				];
+				break;
+			case 'nzbget':
+				$appDetails = [
+					'url' => 'nzbgetURL',
+					'enabled' => 'nzbgetSocksEnabled',
+					'auth' => 'nzbgetSocksAuth',
+					'header' => 'Authorization'
+				];
+				break;
+			case 'tautulli':
+				$appDetails = [
+					'url' => 'tautulliURL',
+					'enabled' => 'tautulliSocksEnabled',
+					'auth' => 'tautulliSocksAuth',
+					'header' => null
+				];
+				break;
+			default:
+				$appDetails = null;
+		}
+		return $appDetails;
+	}
+	
+	public function socks($appDetails, $requestObject, $multiple = null)
 	{
+		$url = $appDetails['url'];
+		$enabled = $appDetails['enabled'];
+		$auth = $appDetails['auth'];
+		$header = $appDetails['header'];
 		$error = false;
 		if (!$this->config[$enabled]) {
 			$error = true;

+ 16 - 88
api/v2/routes/socks.php

@@ -1,51 +1,15 @@
 <?php
 $app->any('/multiple/socks/{app}/{instance}/{route:.*}', function ($request, $response, $args) {
 	$Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
-	switch ($args['app']) {
-		case 'sonarr':
-			$url = 'sonarrURL';
-			$enabled = 'sonarrSocksEnabled';
-			$auth = 'sonarrSocksAuth';
-			$header = 'X-Api-Key';
-			break;
-		case 'radarr':
-			$url = 'radarrURL';
-			$enabled = 'radarrSocksEnabled';
-			$auth = 'radarrSocksAuth';
-			$header = 'X-Api-Key';
-			break;
-		case 'lidarr':
-			$url = 'lidarrURL';
-			$enabled = 'lidarrSocksEnabled';
-			$auth = 'lidarrSocksAuth';
-			$header = 'X-Api-Key';
-			break;
-		case 'sabnzbd':
-			$url = 'sabnzbdURL';
-			$enabled = 'sabnzbdSocksEnabled';
-			$auth = 'sabnzbdSocksAuth';
-			$header = null;
-			break;
-		case 'nzbget':
-			$url = 'nzbgetURL';
-			$enabled = 'nzbgetSocksEnabled';
-			$auth = 'nzbgetSocksAuth';
-			$header = 'Authorization';
-			break;
-		case 'tautulli':
-			$url = 'tautulliURL';
-			$enabled = 'tautulliSocksEnabled';
-			$auth = 'tautulliSocksAuth';
-			$header = null;
-			break;
-		default:
-			$Organizr->setAPIResponse('error', 'Application not supported for socks', 404);
-			$response->getBody()->write(jsonE($GLOBALS['api']));
-			return $response
-				->withHeader('Content-Type', 'application/json;charset=UTF-8')
-				->withStatus($GLOBALS['responseCode']);
+	$appDetails = $Organizr->socksListing($args['app']);
+	if (!$appDetails) {
+		$Organizr->setAPIResponse('error', 'Application not supported for socks', 404);
+		$response->getBody()->write(jsonE($GLOBALS['api']));
+		return $response
+			->withHeader('Content-Type', 'application/json;charset=UTF-8')
+			->withStatus($GLOBALS['responseCode']);
 	}
-	$socks = $Organizr->socks($url, $enabled, $auth, $request, $header, $args['instance']);
+	$socks = $Organizr->socks($appDetails, $request, $args['instance']);
 	$data = $socks ?? jsonE($GLOBALS['api']);
 	$response->getBody()->write($data);
 	return $response
@@ -54,51 +18,15 @@ $app->any('/multiple/socks/{app}/{instance}/{route:.*}', function ($request, $re
 });
 $app->any('/socks/{app}/{route:.*}', function ($request, $response, $args) {
 	$Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
-	switch ($args['app']) {
-		case 'sonarr':
-			$url = 'sonarrURL';
-			$enabled = 'sonarrSocksEnabled';
-			$auth = 'sonarrSocksAuth';
-			$header = 'X-Api-Key';
-			break;
-		case 'radarr':
-			$url = 'radarrURL';
-			$enabled = 'radarrSocksEnabled';
-			$auth = 'radarrSocksAuth';
-			$header = 'X-Api-Key';
-			break;
-		case 'lidarr':
-			$url = 'lidarrURL';
-			$enabled = 'lidarrSocksEnabled';
-			$auth = 'lidarrSocksAuth';
-			$header = 'X-Api-Key';
-			break;
-		case 'sabnzbd':
-			$url = 'sabnzbdURL';
-			$enabled = 'sabnzbdSocksEnabled';
-			$auth = 'sabnzbdSocksAuth';
-			$header = null;
-			break;
-		case 'nzbget':
-			$url = 'nzbgetURL';
-			$enabled = 'nzbgetSocksEnabled';
-			$auth = 'nzbgetSocksAuth';
-			$header = 'Authorization';
-			break;
-		case 'tautulli':
-			$url = 'tautulliURL';
-			$enabled = 'tautulliSocksEnabled';
-			$auth = 'tautulliSocksAuth';
-			$header = null;
-			break;
-		default:
-			$Organizr->setAPIResponse('error', 'Application not supported for socks', 404);
-			$response->getBody()->write(jsonE($GLOBALS['api']));
-			return $response
-				->withHeader('Content-Type', 'application/json;charset=UTF-8')
-				->withStatus($GLOBALS['responseCode']);
+	$appDetails = $Organizr->socksListing($args['app']);
+	if (!$appDetails) {
+		$Organizr->setAPIResponse('error', 'Application not supported for socks', 404);
+		$response->getBody()->write(jsonE($GLOBALS['api']));
+		return $response
+			->withHeader('Content-Type', 'application/json;charset=UTF-8')
+			->withStatus($GLOBALS['responseCode']);
 	}
-	$socks = $Organizr->socks($url, $enabled, $auth, $request, $header);
+	$socks = $Organizr->socks($appDetails, $request);
 	$data = $socks ?? jsonE($GLOBALS['api']);
 	$response->getBody()->write($data);
 	return $response