Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ protected function validate(StorageConfig $storage) {
$backend = $storage->getBackend();
/** @var AuthMechanism */
$authMechanism = $storage->getAuthMechanism();
if ($backend->checkDependencies()) {
if ($backend->checkRequiredDependencies()) {
// invalid backend
return new DataResponse(
[
Expand Down
14 changes: 13 additions & 1 deletion apps/files_external/lib/Lib/DependencyTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,23 @@
trait DependencyTrait {

/**
* Check if object is valid for use
* Check if object has unsatisfied required or optional dependencies
*
* @return MissingDependency[] Unsatisfied dependencies
*/
public function checkDependencies() {
return []; // no dependencies by default
}

/**
* Check if object has unsatisfied required dependencies
*
* @return MissingDependency[] Unsatisfied required dependencies
*/
public function checkRequiredDependencies() {
return array_filter(
$this->checkDependencies(),
fn (MissingDependency $dependency) => !$dependency->isOptional()
);
}
}
6 changes: 1 addition & 5 deletions apps/files_external/lib/Service/BackendService.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
use OCA\Files_External\Lib\Backend\Backend;
use OCA\Files_External\Lib\Config\IAuthMechanismProvider;
use OCA\Files_External\Lib\Config\IBackendProvider;
use OCA\Files_External\Lib\MissingDependency;
use OCP\EventDispatcher\GenericEvent;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IAppConfig;
Expand Down Expand Up @@ -188,10 +187,7 @@ public function getBackends() {
* @return Backend[]
*/
public function getAvailableBackends() {
return array_filter($this->getBackends(), function ($backend) {
$missing = array_filter($backend->checkDependencies(), fn (MissingDependency $dependency) => !$dependency->isOptional());
return count($missing) === 0;
});
return array_filter($this->getBackends(), fn (Backend $backend) => !$backend->checkRequiredDependencies());
}

/**
Expand Down
4 changes: 2 additions & 2 deletions apps/files_external/tests/Service/BackendServiceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -175,11 +175,11 @@ public function testGetAvailableBackends(): void {

$backendAvailable = $this->getBackendMock('\Backend\Available');
$backendAvailable->expects($this->once())
->method('checkDependencies')
->method('checkRequiredDependencies')
->willReturn([]);
$backendNotAvailable = $this->getBackendMock('\Backend\NotAvailable');
$backendNotAvailable->expects($this->once())
->method('checkDependencies')
->method('checkRequiredDependencies')
->willReturn([
$this->getMockBuilder('\OCA\Files_External\Lib\MissingDependency')
->disableOriginalConstructor()
Expand Down
Loading