Browse Source

change existing socks to socks function

CauseFX 5 years ago
parent
commit
74743cef44
1 changed files with 27 additions and 117 deletions
  1. 27 117
      api/v2/routes/socks.php

+ 27 - 117
api/v2/routes/socks.php

@@ -1,135 +1,45 @@
 <?php
 $app->any('/socks/sonarr/{route:.*}', function ($request, $response) {
 	$Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
-	$error = false;
-	if (!$Organizr->config['sonarrSocksEnabled']) {
-		$error = true;
-		$Organizr->setAPIResponse('error', 'Sonarr SOCKS module is not enabled', 409);
-	}
-	if (!$Organizr->qualifyRequest($Organizr->config['sonarrSocksAuth'], true)) {
-		$error = true;
-	}
-	if (!$error) {
-		$new = str_ireplace('/api/v2/socks/sonarr', '', $request->getUri()->getPath());
-		$getParams = ($_GET) ? '?' . http_build_query($_GET) : '';
-		$url = $Organizr->qualifyURL($Organizr->config['sonarrURL']) . $new . $getParams;
-		$url = $Organizr->cleanPath($url);
-		$options = ($Organizr->localURL($url)) ? array('verify' => false) : array();
-		$headers = [];
-		if ($request->hasHeader('X-Api-Key')) {
-			$headerKey = $request->getHeaderLine('X-Api-Key');
-			$headers['X-Api-Key'] = $headerKey;
-		}
-		switch ($request->getMethod()) {
-			case 'GET':
-				$call = Requests::get($url, $headers, $options);
-				break;
-			case 'POST':
-				$call = Requests::post($url, $headers, $Organizr->apiData($request), $options);
-				break;
-			case 'DELETE':
-				$call = Requests::delete($url, $headers, $options);
-				break;
-			case 'PUT':
-				$call = Requests::put($url, $headers, $Organizr->apiData($request), $options);
-				break;
-			default:
-				$call = Requests::get($url, $headers, $options);
-		}
-		$response->getBody()->write($call->body);
-	} else {
-		$response->getBody()->write(jsonE($GLOBALS['api']));
-	}
+	$socks = $Organizr->socks(
+		'sonarrURL',
+		'sonarrSocksEnabled',
+		'sonarrSocksAuth',
+		$request,
+		'X-Api-Key'
+	);
+	$data = $socks ?? jsonE($GLOBALS['api']);
+	$response->getBody()->write($data);
 	return $response
 		->withHeader('Content-Type', 'application/json;charset=UTF-8')
 		->withStatus($GLOBALS['responseCode']);
 });
 $app->any('/socks/radarr/{route:.*}', function ($request, $response) {
 	$Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
-	$error = false;
-	if (!$Organizr->config['radarrSocksEnabled']) {
-		$error = true;
-		$Organizr->setAPIResponse('error', 'Radarr SOCKS module is not enabled', 409);
-	}
-	if (!$Organizr->qualifyRequest($Organizr->config['radarrSocksAuth'], true)) {
-		$error = true;
-	}
-	if (!$error) {
-		$new = str_ireplace('/api/v2/socks/radarr', '', $request->getUri()->getPath());
-		$getParams = ($_GET) ? '?' . http_build_query($_GET) : '';
-		$url = $Organizr->qualifyURL($Organizr->config['radarrURL']) . $new . $getParams;
-		$url = $Organizr->cleanPath($url);
-		$options = ($Organizr->localURL($url)) ? array('verify' => false) : array();
-		$headers = [];
-		if ($request->hasHeader('X-Api-Key')) {
-			$headerKey = $request->getHeaderLine('X-Api-Key');
-			$headers['X-Api-Key'] = $headerKey;
-		}
-		switch ($request->getMethod()) {
-			case 'GET':
-				$call = Requests::get($url, $headers, $options);
-				break;
-			case 'POST':
-				$call = Requests::post($url, $headers, $Organizr->apiData($request), $options);
-				break;
-			case 'DELETE':
-				$call = Requests::delete($url, $headers, $options);
-				break;
-			case 'PUT':
-				$call = Requests::put($url, $headers, $Organizr->apiData($request), $options);
-				break;
-			default:
-				$call = Requests::get($url, $headers, $options);
-		}
-		$response->getBody()->write($call->body);
-	} else {
-		$response->getBody()->write(jsonE($GLOBALS['api']));
-	}
+	$socks = $Organizr->socks(
+		'radarrURL',
+		'radarrSocksEnabled',
+		'radarrSocksAuth',
+		$request,
+		'X-Api-Key'
+	);
+	$data = $socks ?? jsonE($GLOBALS['api']);
+	$response->getBody()->write($data);
 	return $response
 		->withHeader('Content-Type', 'application/json;charset=UTF-8')
 		->withStatus($GLOBALS['responseCode']);
 });
 $app->any('/socks/lidarr/{route:.*}', function ($request, $response) {
 	$Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
-	$error = false;
-	if (!$Organizr->config['lidarrSocksEnabled']) {
-		$error = true;
-		$Organizr->setAPIResponse('error', 'Lidarr SOCKS module is not enabled', 409);
-	}
-	if (!$Organizr->qualifyRequest($Organizr->config['lidarrSocksAuth'], true)) {
-		$error = true;
-	}
-	if (!$error) {
-		$new = str_ireplace('/api/v2/socks/lidarr', '', $request->getUri()->getPath());
-		$getParams = ($_GET) ? '?' . http_build_query($_GET) : '';
-		$url = $Organizr->qualifyURL($Organizr->config['lidarrURL']) . $new . $getParams;
-		$url = $Organizr->cleanPath($url);
-		$options = ($Organizr->localURL($url)) ? array('verify' => false) : array();
-		$headers = [];
-		if ($request->hasHeader('X-Api-Key')) {
-			$headerKey = $request->getHeaderLine('X-Api-Key');
-			$headers['X-Api-Key'] = $headerKey;
-		}
-		switch ($request->getMethod()) {
-			case 'GET':
-				$call = Requests::get($url, $headers, $options);
-				break;
-			case 'POST':
-				$call = Requests::post($url, $headers, $Organizr->apiData($request), $options);
-				break;
-			case 'DELETE':
-				$call = Requests::delete($url, $headers, $options);
-				break;
-			case 'PUT':
-				$call = Requests::put($url, $headers, $Organizr->apiData($request), $options);
-				break;
-			default:
-				$call = Requests::get($url, $headers, $options);
-		}
-		$response->getBody()->write($call->body);
-	} else {
-		$response->getBody()->write(jsonE($GLOBALS['api']));
-	}
+	$socks = $Organizr->socks(
+		'lidarrURL',
+		'lidarrSocksEnabled',
+		'lidarrSocksAuth',
+		$request,
+		'X-Api-Key'
+	);
+	$data = $socks ?? jsonE($GLOBALS['api']);
+	$response->getBody()->write($data);
 	return $response
 		->withHeader('Content-Type', 'application/json;charset=UTF-8')
 		->withStatus($GLOBALS['responseCode']);