Skip to content

Commit

Permalink
Improve error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
leepeuker committed Jul 2, 2023
1 parent efe6629 commit 9062c08
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 18 deletions.
12 changes: 6 additions & 6 deletions public/js/settings-integration-plex.js
Original file line number Diff line number Diff line change
Expand Up @@ -196,16 +196,16 @@ async function verifyPlexServerUrl() {
}).then(async function (response) {
document.getElementById('alertPlexServerUrlLoadingSpinner').classList.add('d-none')

return {'status': response.status, 'message': await response.json()};
}).then(function (data) {
if (data.status === 200 && data.message === true) {
addAlert('alertPlexServerUrlDiv', 'Connection test successful', 'success')
if (response.status === 400) {
addAlert('alertPlexServerUrlDiv', await response.text(), 'danger')

return
}

if (data.status === 400) {
addAlert('alertPlexServerUrlDiv', data.message, 'danger')
const data = await response.json()

if (response.status === 200 && data === true) {
addAlert('alertPlexServerUrlDiv', 'Connection test successful', 'success')

return
}
Expand Down
2 changes: 1 addition & 1 deletion src/Api/Plex/PlexApi.php
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ public function generatePlexAuthenticationUrl() : string
return self::BASE_URL . http_build_query($getParameters);
}

public function verifyPlexUrl(PlexUserClientConfiguration $userClientConfiguration) : bool
public function testUserClientConfiguration(PlexUserClientConfiguration $userClientConfiguration) : bool
{
try {
$this->userClient->get($userClientConfiguration);
Expand Down
1 change: 1 addition & 0 deletions src/Api/Plex/PlexUserClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public function get(
self::DEFAULT_HEADERS,
['X-Plex-Token' => (string)$clientConfiguration->getAccessToken()],
),
'connect_timeout' => 4,
];

$requestUrl = $clientConfiguration->getServerUrl();
Expand Down
5 changes: 1 addition & 4 deletions src/Factory.php
Original file line number Diff line number Diff line change
Expand Up @@ -174,10 +174,7 @@ public static function createExportService(ContainerInterface $container) : Expo

public static function createHttpClient() : ClientInterface
{
return new GuzzleHttp\Client([
'connect_timeout' => 4,
'timeout' => 4,
]);
return new GuzzleHttp\Client(['timeout' => 4]);
}

public static function createImageCacheService(ContainerInterface $container) : ImageCacheService
Expand Down
11 changes: 4 additions & 7 deletions src/HttpController/PlexController.php
Original file line number Diff line number Diff line change
Expand Up @@ -171,22 +171,19 @@ public function verifyPlexServerUrl(Request $request) : Response

$plexAccessToken = $this->authenticationService->getCurrentUser()->getPlexAccessToken();
if ($plexAccessToken === null) {
return Response::createBadRequest('Verification failed, plex authentication token missing.');
return Response::createBadRequest('Plex authentication is missing');
}

$plexServerUrl = Json::decode($request->getBody())['plexServerUrl'];
if (empty($plexServerUrl)) {
return Response::createBadRequest('Url not correctly formatted');
}
$plexServerUrl = Json::decode($request->getBody())['plexServerUrl'] ?? '';

try {
$plexServerUrl = Url::createFromString($plexServerUrl);
} catch (InvalidUrl) {
return Response::createBadRequest('Verification failed, url not properly formatted');
return Response::createBadRequest('Provided server url is not a valid url');
}

$userClientConfiguration = PlexUserClientConfiguration::create($plexAccessToken, $plexServerUrl);

return Response::createJson(Json::encode($this->plexApi->verifyPlexUrl($userClientConfiguration)));
return Response::createJson(Json::encode($this->plexApi->testUserClientConfiguration($userClientConfiguration)));
}
}

0 comments on commit 9062c08

Please sign in to comment.