Restructure HTTPClient for new paradigm

This commit is contained in:
Philipp Holzer 2021-10-23 12:50:29 +02:00
parent 6bc61d5ef7
commit fe296e5a73
Signed by: nupplaPhil
GPG Key ID: 24A7501396EB5432
4 changed files with 26 additions and 26 deletions

View File

@ -21,7 +21,7 @@ use Friendica\Model\Group;
use Friendica\Model\Item;
use Friendica\Model\Post;
use Friendica\Model\User;
use Friendica\Network\HTTPClientOptions;
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
use Friendica\Protocol\Activity;
use Friendica\Protocol\ActivityNamespace;
use Friendica\Core\Config\Util\ConfigFileLoader;
@ -1537,7 +1537,7 @@ function pumpio_fetchallcomments(App $a, $uid, $id)
function pumpio_reachable($url)
{
return DI::httpClient()->get($url, [HTTPClientOptions::TIMEOUT => 10])->isSuccess();
return DI::httpClient()->get($url, [HttpClientOptions::TIMEOUT => 10])->isSuccess();
}
/*

View File

@ -6,8 +6,8 @@ use Exception;
use Friendica\Core\Storage\Capability\ICanWriteToStorage;
use Friendica\Core\Storage\Exception\ReferenceStorageException;
use Friendica\Core\Storage\Exception\StorageException;
use Friendica\Network\HTTPClientOptions;
use Friendica\Network\IHTTPClient;
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
use Friendica\Network\HTTPClient\Capability\ICanRequestPerHttp;
use Friendica\Util\Strings;
use Psr\Log\LoggerInterface;
@ -21,7 +21,7 @@ class WebDav implements ICanWriteToStorage
/** @var string */
private $url;
/** @var IHTTPClient */
/** @var ICanRequestPerHttp */
private $client;
/** @var LoggerInterface */
@ -33,12 +33,12 @@ class WebDav implements ICanWriteToStorage
/**
* WebDav constructor
*
* @param string $url The full URL to the webdav endpoint (including the subdirectories)
* @param array $authOptions The authentication options for the http calls ( ['username', 'password', 'auth_type'] )
* @param IHTTPClient $client The http client for communicating with the WebDav endpoint
* @param LoggerInterface $logger The standard logging class
* @param string $url The full URL to the webdav endpoint (including the subdirectories)
* @param array $authOptions The authentication options for the http calls ( ['username', 'password', 'auth_type'] )
* @param ICanRequestPerHttp $client The http client for communicating with the WebDav endpoint
* @param LoggerInterface $logger The standard logging class
*/
public function __construct(string $url, array $authOptions, IHTTPClient $client, LoggerInterface $logger)
public function __construct(string $url, array $authOptions, ICanRequestPerHttp $client, LoggerInterface $logger)
{
$this->client = $client;
$this->logger = $logger;
@ -85,7 +85,7 @@ class WebDav implements ICanWriteToStorage
*/
protected function exists(string $uri): bool
{
return $this->client->head($uri, [HTTPClientOptions::AUTH => $this->authOptions])->getReturnCode() == 200;
return $this->client->head($uri, [HttpClientOptions::AUTH => $this->authOptions])->getReturnCode() == 200;
}
/**
@ -105,9 +105,9 @@ class WebDav implements ICanWriteToStorage
$dom->appendChild($root)->appendChild($prop);
$opts = [
HTTPClientOptions::AUTH => $this->authOptions,
HTTPClientOptions::HEADERS => ['Depth' => 1, 'Prefer' => 'return-minimal', 'Content-Type' => 'application/xml'],
HTTPClientOptions::BODY => $dom->saveXML(),
HttpClientOptions::AUTH => $this->authOptions,
HttpClientOptions::HEADERS => ['Depth' => 1, 'Prefer' => 'return-minimal', 'Content-Type' => 'application/xml'],
HttpClientOptions::BODY => $dom->saveXML(),
];
$response = $this->client->request('propfind', $uri, $opts);
@ -133,7 +133,7 @@ class WebDav implements ICanWriteToStorage
*/
protected function mkcol(string $uri): bool
{
return $this->client->request('mkcol', $uri, [HTTPClientOptions::AUTH => $this->authOptions])
return $this->client->request('mkcol', $uri, [HttpClientOptions::AUTH => $this->authOptions])
->getReturnCode() == 200;
}
@ -177,7 +177,7 @@ class WebDav implements ICanWriteToStorage
foreach ($pathParts as $pathPart) {
$checkUrl = $this->url . $partURL;
if (!empty($partURL) && !$this->hasItems($checkUrl)) {
$response = $this->client->request('delete', $checkUrl, [HTTPClientOptions::AUTH => $this->authOptions]);
$response = $this->client->request('delete', $checkUrl, [HttpClientOptions::AUTH => $this->authOptions]);
if (!$response->isSuccess()) {
if ($response->getReturnCode() == "404") {
@ -199,7 +199,7 @@ class WebDav implements ICanWriteToStorage
{
$file = $this->pathForRef($reference);
$response = $this->client->request('get', $this->url . '/' . $file[0], [HTTPClientOptions::AUTH => $this->authOptions]);
$response = $this->client->request('get', $this->url . '/' . $file[0], [HttpClientOptions::AUTH => $this->authOptions]);
if (!$response->isSuccess()) {
throw new ReferenceStorageException(sprintf('Invalid reference %s', $reference));
@ -225,8 +225,8 @@ class WebDav implements ICanWriteToStorage
$this->checkAndCreatePath($file[1]);
$opts = [
HTTPClientOptions::BODY => $data,
HTTPClientOptions::AUTH => $this->authOptions,
HttpClientOptions::BODY => $data,
HttpClientOptions::AUTH => $this->authOptions,
];
$this->client->request('put', $this->url . '/' . $file[0], $opts);
@ -241,7 +241,7 @@ class WebDav implements ICanWriteToStorage
{
$file = $this->pathForRef($reference);
$response = $this->client->request('delete', $this->url . '/' . $file[0], [HTTPClientOptions::AUTH => $this->authOptions]);
$response = $this->client->request('delete', $this->url . '/' . $file[0], [HttpClientOptions::AUTH => $this->authOptions]);
if (!$response->isSuccess()) {
throw new ReferenceStorageException(sprintf('Invalid reference %s', $reference));

View File

@ -5,8 +5,8 @@ namespace Friendica\Addon\webdav_storage\src;
use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\L10n;
use Friendica\Core\Storage\Capability\ICanConfigureStorage;
use Friendica\Network\HTTPClientOptions;
use Friendica\Network\IHTTPClient;
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
use Friendica\Network\HTTPClient\Capability\ICanRequestPerHttp;
/**
* The WebDav Backend Storage configuration class
@ -24,7 +24,7 @@ class WebDavConfig implements ICanConfigureStorage
/** @var string */
private $url;
/** @var IHTTPClient */
/** @var \Friendica\Network\HTTPClient\Capability\ICanRequestPerHttp */
private $client;
/** @var array */
@ -46,7 +46,7 @@ class WebDavConfig implements ICanConfigureStorage
return $this->authOptions;
}
public function __construct(L10n $l10n, IManageConfigValues $config, IHTTPClient $client)
public function __construct(L10n $l10n, IManageConfigValues $config, ICanRequestPerHttp $client)
{
$this->l10n = $l10n;
$this->config = $config;
@ -138,7 +138,7 @@ class WebDavConfig implements ICanConfigureStorage
];
}
if (!$this->client->head($url, [HTTPClientOptions::AUTH => $options])->isSuccess()) {
if (!$this->client->head($url, [HttpClientOptions::AUTH => $options])->isSuccess()) {
return [
'url' => $this->l10n->t('url is either invalid or not reachable'),
];

View File

@ -4,7 +4,7 @@ namespace Friendica\Addon\webdav_storage\tests;
use Friendica\Addon\webdav_storage\src\WebDav;
use Friendica\DI;
use Friendica\Factory\HTTPClientFactory;
use Friendica\Network\HTTPClient\Factory\HTTPClientFactory;
use Friendica\Test\src\Core\Storage\StorageTest;
use Friendica\Core\Logger\Type\VoidLogger;