implementing fulltextsearch

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
This commit is contained in:
Maxence Lange
2019-02-11 10:29:14 -01:00
committed by Julius Härtl
parent 5d72750d92
commit 0cb8c75744
3 changed files with 58 additions and 0 deletions

View File

@@ -29,6 +29,7 @@ $app = new \OCA\Deck\AppInfo\Application();
$app->registerNavigationEntry();
$app->registerNotifications();
$app->registerCommentsEntity();
$app->registerFullTextSearch();
/** Load activity style global so it is availabile in the activity app as well */
\OC_Util::addStyle('deck', 'activity');

View File

@@ -63,4 +63,9 @@
<provider>OCA\Deck\Activity\DeckProvider</provider>
</providers>
</activity>
<fulltextsearch>
<provider>OCA\Deck\Provider\DeckProvider</provider>
</fulltextsearch>
</info>

View File

@@ -23,6 +23,7 @@
namespace OCA\Deck\AppInfo;
use Exception;
use OCA\Deck\Activity\CommentEventHandler;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
@@ -30,6 +31,7 @@ use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Middleware\ExceptionMiddleware;
use OCA\Deck\Notification\Notifier;
use OCA\Deck\Service\FullTextSearchService;
use OCP\AppFramework\App;
use OCA\Deck\Middleware\SharingMiddleware;
use OCP\Collaboration\Resources\IManager;
@@ -39,13 +41,20 @@ use OCP\IUser;
use OCP\IUserManager;
use OCP\IURLGenerator;
use OCP\INavigationManager;
use Symfony\Component\EventDispatcher\GenericEvent;
class Application extends App {
/** @var FullTextSearchService */
private $fullTextSearchService;
/**
* Application constructor.
*
* @param array $urlParams
*
* @throws \OCP\AppFramework\QueryException
*/
public function __construct(array $urlParams = array()) {
@@ -179,4 +188,47 @@ class Application extends App {
\OCP\Util::addScript('deck', 'build/collections');
});
}
public function registerFullTextSearch() {
$c = $this->getContainer();
try {
$this->fullTextSearchService = $c->query(FullTextSearchService::class);
} catch (Exception $e) {
return;
}
$eventDispatcher = \OC::$server->getEventDispatcher();
$eventDispatcher->addListener(
'\OCA\Deck\Card::onCreate', function(GenericEvent $e) {
$this->fullTextSearchService->onCardCreated($e);
}
);
$eventDispatcher->addListener(
'\OCA\Deck\Card::onUpdate', function(GenericEvent $e) {
$this->fullTextSearchService->onCardUpdated($e);
}
);
$eventDispatcher->addListener(
'\OCA\Deck\Card::onDelete', function(GenericEvent $e) {
$this->fullTextSearchService->onCardDeleted($e);
}
);
$eventDispatcher->addListener(
'\OCA\Deck\Board::onShareNew', function(GenericEvent $e) {
$this->fullTextSearchService->onBoardShares($e);
}
);
$eventDispatcher->addListener(
'\OCA\Deck\Board::onShareEdit', function(GenericEvent $e) {
$this->fullTextSearchService->onBoardShares($e);
}
);
$eventDispatcher->addListener(
'\OCA\Deck\Board::onShareDelete', function(GenericEvent $e) {
$this->fullTextSearchService->onBoardShares($e);
}
);
}
}