|
|
|
|
@ -31,6 +31,8 @@ use OCP\Files\Folder;
|
|
|
|
|
use OCP\ITags;
|
|
|
|
|
use OCP\IUser;
|
|
|
|
|
use OCP\IUserSession;
|
|
|
|
|
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
|
|
|
|
use Symfony\Component\EventDispatcher\GenericEvent;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Service class to manage tags on files.
|
|
|
|
|
@ -45,23 +47,28 @@ class TagService {
|
|
|
|
|
private $tagger;
|
|
|
|
|
/** @var Folder */
|
|
|
|
|
private $homeFolder;
|
|
|
|
|
/** @var EventDispatcherInterface */
|
|
|
|
|
private $dispatcher;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param IUserSession $userSession
|
|
|
|
|
* @param IManager $activityManager
|
|
|
|
|
* @param ITags $tagger
|
|
|
|
|
* @param Folder $homeFolder
|
|
|
|
|
* @param EventDispatcherInterface $dispatcher
|
|
|
|
|
*/
|
|
|
|
|
public function __construct(
|
|
|
|
|
IUserSession $userSession,
|
|
|
|
|
IManager $activityManager,
|
|
|
|
|
ITags $tagger,
|
|
|
|
|
Folder $homeFolder
|
|
|
|
|
Folder $homeFolder,
|
|
|
|
|
EventDispatcherInterface $dispatcher
|
|
|
|
|
) {
|
|
|
|
|
$this->userSession = $userSession;
|
|
|
|
|
$this->activityManager = $activityManager;
|
|
|
|
|
$this->tagger = $tagger;
|
|
|
|
|
$this->homeFolder = $homeFolder;
|
|
|
|
|
$this->dispatcher = $dispatcher;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -114,6 +121,13 @@ class TagService {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$eventName = $addToFavorite ? 'addFavorite' : 'removeFavorite';
|
|
|
|
|
$this->dispatcher->dispatch(self::class . '::' . $eventName, new GenericEvent(null, [
|
|
|
|
|
'userId' => $user->getUID(),
|
|
|
|
|
'fileId' => $fileId,
|
|
|
|
|
'path' => $path,
|
|
|
|
|
]));
|
|
|
|
|
|
|
|
|
|
$event = $this->activityManager->generateEvent();
|
|
|
|
|
try {
|
|
|
|
|
$event->setApp('files')
|
|
|
|
|
|