Allow apps to register resource providers
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
parent
88aa3de784
commit
d85e3e3a6d
|
@ -27,9 +27,11 @@
|
||||||
namespace OCA\Files\AppInfo;
|
namespace OCA\Files\AppInfo;
|
||||||
|
|
||||||
use OCA\Files\Activity\Helper;
|
use OCA\Files\Activity\Helper;
|
||||||
|
use OCA\Files\Collaboration\Resources\ResourceProvider;
|
||||||
use OCA\Files\Controller\ApiController;
|
use OCA\Files\Controller\ApiController;
|
||||||
use OCP\AppFramework\App;
|
use OCP\AppFramework\App;
|
||||||
use \OCA\Files\Service\TagService;
|
use \OCA\Files\Service\TagService;
|
||||||
|
use OCP\Collaboration\Resources\IManager;
|
||||||
use \OCP\IContainer;
|
use \OCP\IContainer;
|
||||||
use OCA\Files\Controller\ViewController;
|
use OCA\Files\Controller\ViewController;
|
||||||
use OCA\Files\Capabilities;
|
use OCA\Files\Capabilities;
|
||||||
|
@ -99,5 +101,12 @@ class Application extends App {
|
||||||
* Register capabilities
|
* Register capabilities
|
||||||
*/
|
*/
|
||||||
$container->registerCapability(Capabilities::class);
|
$container->registerCapability(Capabilities::class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register Collaboration ResourceProvider
|
||||||
|
*/
|
||||||
|
/** @var IManager $resourceManager */
|
||||||
|
$resourceManager = $container->query(IManager::class);
|
||||||
|
$resourceManager->registerResourceProvider($container->query(ResourceProvider::class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,6 @@ declare(strict_types=1);
|
||||||
namespace OC\Collaboration\Resources;
|
namespace OC\Collaboration\Resources;
|
||||||
|
|
||||||
|
|
||||||
use OCA\Files\Collaboration\Resources\ResourceProvider;
|
|
||||||
use OCP\Collaboration\Resources\CollectionException;
|
use OCP\Collaboration\Resources\CollectionException;
|
||||||
use OCP\Collaboration\Resources\ICollection;
|
use OCP\Collaboration\Resources\ICollection;
|
||||||
use OCP\Collaboration\Resources\IManager;
|
use OCP\Collaboration\Resources\IManager;
|
||||||
|
@ -39,6 +38,9 @@ class Manager implements IManager {
|
||||||
/** @var IDBConnection */
|
/** @var IDBConnection */
|
||||||
protected $connection;
|
protected $connection;
|
||||||
|
|
||||||
|
/** @var IProvider[] */
|
||||||
|
protected $providers = [];
|
||||||
|
|
||||||
public function __construct(IDBConnection $connection) {
|
public function __construct(IDBConnection $connection) {
|
||||||
$this->connection = $connection;
|
$this->connection = $connection;
|
||||||
}
|
}
|
||||||
|
@ -96,9 +98,7 @@ class Manager implements IManager {
|
||||||
* @since 15.0.0
|
* @since 15.0.0
|
||||||
*/
|
*/
|
||||||
public function getProviders(): array {
|
public function getProviders(): array {
|
||||||
return [
|
return $this->providers;
|
||||||
\OC::$server->query(ResourceProvider::class) // FIXME
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -155,4 +155,11 @@ class Manager implements IManager {
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param IProvider $provider
|
||||||
|
*/
|
||||||
|
public function registerResourceProvider(IProvider $provider): void {
|
||||||
|
$this->providers[] = $provider;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,4 +50,8 @@ interface IManager extends IProvider {
|
||||||
*/
|
*/
|
||||||
public function getResource(string $type, string $id): IResource;
|
public function getResource(string $type, string $id): IResource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param IProvider $provider
|
||||||
|
*/
|
||||||
|
public function registerResourceProvider(IProvider $provider): void;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue