socks.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. $app->any('/socks/sonarr/{route:.*}', function ($request, $response) {
  3. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  4. $new = str_ireplace('/api/v2/socks/sonarr', '', $request->getUri()->getPath());
  5. $getParams = ($_GET) ? '?' . http_build_query($_GET) : '';
  6. $url = $Organizr->qualifyURL($Organizr->config['sonarrURL']) . $new . $getParams;
  7. $url = $Organizr->cleanPath($url);
  8. $options = ($Organizr->localURL($url)) ? array('verify' => false) : array();
  9. $headers = [];
  10. if ($request->hasHeader('X-Api-Key')) {
  11. $headerKey = $request->getHeaderLine('X-Api-Key');
  12. $headers['X-Api-Key'] = $headerKey;
  13. }
  14. switch ($request->getMethod()) {
  15. case 'GET':
  16. $call = Requests::get($url, $headers, $options);
  17. break;
  18. case 'POST':
  19. $call = Requests::post($url, $headers, $Organizr->apiData($request), $options);
  20. break;
  21. case 'DELETE':
  22. $call = Requests::delete($url, $headers, $options);
  23. break;
  24. case 'PUT':
  25. $call = Requests::put($url, $headers, $Organizr->apiData($request), $options);
  26. break;
  27. default:
  28. $call = Requests::get($url, $headers, $options);
  29. }
  30. $response->getBody()->write($call->body);
  31. return $response
  32. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  33. ->withStatus($GLOBALS['responseCode']);
  34. });