@ -177,7 +177,7 @@ namespace NzbDrone.Core.Download.Clients.Deluge
{
var requestBuilder = BuildRequest ( settings ) ;
var response = Process Request< TResult > ( requestBuilder , method , arguments ) ;
var response = Execute Request< TResult > ( requestBuilder , method , arguments ) ;
if ( response . Error ! = null )
{
@ -186,7 +186,7 @@ namespace NzbDrone.Core.Download.Clients.Deluge
{
AuthenticateClient ( requestBuilder , settings , true ) ;
response = Process Request< TResult > ( requestBuilder , method , arguments ) ;
response = Execute Request< TResult > ( requestBuilder , method , arguments ) ;
if ( response . Error = = null )
{
@ -203,7 +203,7 @@ namespace NzbDrone.Core.Download.Clients.Deluge
return response . Result ;
}
private JsonRpcResponse < TResult > Process Request< TResult > ( JsonRpcRequestBuilder requestBuilder , string method , params object [ ] arguments )
private JsonRpcResponse < TResult > Execute Request< TResult > ( JsonRpcRequestBuilder requestBuilder , string method , params object [ ] arguments )
{
var request = requestBuilder . Call ( method , arguments ) . Build ( ) ;
@ -235,6 +235,15 @@ namespace NzbDrone.Core.Download.Clients.Deluge
}
}
private void VerifyResponse < TResult > ( JsonRpcResponse < TResult > response )
{
if ( response . Error ! = null )
{
var error = response . Error . ToObject < DelugeError > ( ) ;
throw new DelugeException ( error . Message , error . Code ) ;
}
}
private void AuthenticateClient ( JsonRpcRequestBuilder requestBuilder , DelugeSettings settings , bool reauthenticate = false )
{
var authKey = string . Format ( "{0}:{1}" , requestBuilder . BaseUrl , settings . Password ) ;
@ -271,14 +280,16 @@ namespace NzbDrone.Core.Download.Clients.Deluge
private void ConnectDaemon ( JsonRpcRequestBuilder requestBuilder )
{
var resultConnected = ProcessRequest < bool > ( requestBuilder , "web.connected" ) ;
var resultConnected = ExecuteRequest < bool > ( requestBuilder , "web.connected" ) ;
VerifyResponse ( resultConnected ) ;
if ( resultConnected . Result )
{
return ;
}
var resultHosts = ProcessRequest < List < object [ ] > > ( requestBuilder , "web.get_hosts" ) ;
var resultHosts = ExecuteRequest < List < object [ ] > > ( requestBuilder , "web.get_hosts" ) ;
VerifyResponse ( resultHosts ) ;
if ( resultHosts . Result ! = null )
{
@ -287,13 +298,14 @@ namespace NzbDrone.Core.Download.Clients.Deluge
if ( connection ! = null )
{
ProcessRequest < object > ( requestBuilder , "web.connect" , new object [ ] { connection [ 0 ] } ) ;
}
else
{
throw new DownloadClientException ( "Failed to connect to Deluge daemon." ) ;
var resultConnect = ExecuteRequest < object > ( requestBuilder , "web.connect" , new object [ ] { connection [ 0 ] } ) ;
VerifyResponse ( resultConnect ) ;
return ;
}
}
throw new DownloadClientException ( "Failed to connect to Deluge daemon." ) ;
}
private DelugeTorrent [ ] GetTorrents ( DelugeUpdateUIResult result )