set read marker via proppatch against entity
This commit is contained in:
parent
b1c8b077b0
commit
29f57eb85c
|
@ -25,7 +25,9 @@ use OCP\Comments\ICommentsManager;
|
|||
use OCP\Files\Folder;
|
||||
use OCP\ILogger;
|
||||
use OCP\IUserManager;
|
||||
use OCP\IUserSession;
|
||||
use Sabre\DAV\Exception\NotFound;
|
||||
use Sabre\DAV\PropPatch;
|
||||
|
||||
/**
|
||||
* Class EntityCollection
|
||||
|
@ -35,7 +37,9 @@ use Sabre\DAV\Exception\NotFound;
|
|||
*
|
||||
* @package OCA\DAV\Comments
|
||||
*/
|
||||
class EntityCollection extends RootCollection {
|
||||
class EntityCollection extends RootCollection implements \Sabre\DAV\IProperties {
|
||||
const PROPERTY_NAME_READ_MARKER = '{http://owncloud.org/ns}readMarker';
|
||||
|
||||
/** @var Folder */
|
||||
protected $fileRoot;
|
||||
|
||||
|
@ -159,5 +163,37 @@ class EntityCollection extends RootCollection {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the read marker to the specified date for the logged in user
|
||||
*
|
||||
* @param \DateTime $value
|
||||
* @return bool
|
||||
*/
|
||||
public function setReadMarker($value) {
|
||||
$dateTime = new \DateTime($value);
|
||||
$user = $this->userSession->getUser();
|
||||
$this->commentsManager->setReadMark($this->name, $this->id, $dateTime, $user);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
function propPatch(PropPatch $propPatch) {
|
||||
$propPatch->handle(self::PROPERTY_NAME_READ_MARKER, [$this, 'setReadMarker']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
function getProperties($properties) {
|
||||
$marker = null;
|
||||
$user = $this->userSession->getUser();
|
||||
if(!is_null($user)) {
|
||||
$marker = $this->commentsManager->getReadMark($this->name, $this->id, $user);
|
||||
}
|
||||
return [self::PROPERTY_NAME_READ_MARKER => $marker];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ class EntityCollection extends \Test\TestCase {
|
|||
protected $userManager;
|
||||
protected $logger;
|
||||
protected $collection;
|
||||
protected $userSession;
|
||||
|
||||
public function setUp() {
|
||||
parent::setUp();
|
||||
|
@ -35,6 +36,7 @@ class EntityCollection extends \Test\TestCase {
|
|||
$this->commentsManager = $this->getMock('\OCP\Comments\ICommentsManager');
|
||||
$this->folder = $this->getMock('\OCP\Files\Folder');
|
||||
$this->userManager = $this->getMock('\OCP\IUserManager');
|
||||
$this->userSession = $this->getMock('\OCP\IUserSession');
|
||||
$this->logger = $this->getMock('\OCP\ILogger');
|
||||
|
||||
$this->collection = new \OCA\DAV\Comments\EntityCollection(
|
||||
|
@ -43,6 +45,7 @@ class EntityCollection extends \Test\TestCase {
|
|||
$this->commentsManager,
|
||||
$this->folder,
|
||||
$this->userManager,
|
||||
$this->userSession,
|
||||
$this->logger
|
||||
);
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ class EntityTypeCollection extends \Test\TestCase {
|
|||
protected $userManager;
|
||||
protected $logger;
|
||||
protected $collection;
|
||||
protected $userSession;
|
||||
|
||||
public function setUp() {
|
||||
parent::setUp();
|
||||
|
@ -37,6 +38,7 @@ class EntityTypeCollection extends \Test\TestCase {
|
|||
$this->commentsManager = $this->getMock('\OCP\Comments\ICommentsManager');
|
||||
$this->folder = $this->getMock('\OCP\Files\Folder');
|
||||
$this->userManager = $this->getMock('\OCP\IUserManager');
|
||||
$this->userSession = $this->getMock('\OCP\IUserSession');
|
||||
$this->logger = $this->getMock('\OCP\ILogger');
|
||||
|
||||
$this->collection = new \OCA\DAV\Comments\EntityTypeCollection(
|
||||
|
@ -44,6 +46,7 @@ class EntityTypeCollection extends \Test\TestCase {
|
|||
$this->commentsManager,
|
||||
$this->folder,
|
||||
$this->userManager,
|
||||
$this->userSession,
|
||||
$this->logger
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue