Restructure HTTPClient for new paradigm
This commit is contained in:
parent
6bc61d5ef7
commit
fe296e5a73
|
@ -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();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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'),
|
||||
];
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue