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\Files\Folder;
|
||||||
use OCP\ILogger;
|
use OCP\ILogger;
|
||||||
use OCP\IUserManager;
|
use OCP\IUserManager;
|
||||||
|
use OCP\IUserSession;
|
||||||
use Sabre\DAV\Exception\NotFound;
|
use Sabre\DAV\Exception\NotFound;
|
||||||
|
use Sabre\DAV\PropPatch;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class EntityCollection
|
* Class EntityCollection
|
||||||
|
@ -35,7 +37,9 @@ use Sabre\DAV\Exception\NotFound;
|
||||||
*
|
*
|
||||||
* @package OCA\DAV\Comments
|
* @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 */
|
/** @var Folder */
|
||||||
protected $fileRoot;
|
protected $fileRoot;
|
||||||
|
|
||||||
|
@ -159,5 +163,37 @@ class EntityCollection extends RootCollection {
|
||||||
return false;
|
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 $userManager;
|
||||||
protected $logger;
|
protected $logger;
|
||||||
protected $collection;
|
protected $collection;
|
||||||
|
protected $userSession;
|
||||||
|
|
||||||
public function setUp() {
|
public function setUp() {
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
@ -35,6 +36,7 @@ class EntityCollection extends \Test\TestCase {
|
||||||
$this->commentsManager = $this->getMock('\OCP\Comments\ICommentsManager');
|
$this->commentsManager = $this->getMock('\OCP\Comments\ICommentsManager');
|
||||||
$this->folder = $this->getMock('\OCP\Files\Folder');
|
$this->folder = $this->getMock('\OCP\Files\Folder');
|
||||||
$this->userManager = $this->getMock('\OCP\IUserManager');
|
$this->userManager = $this->getMock('\OCP\IUserManager');
|
||||||
|
$this->userSession = $this->getMock('\OCP\IUserSession');
|
||||||
$this->logger = $this->getMock('\OCP\ILogger');
|
$this->logger = $this->getMock('\OCP\ILogger');
|
||||||
|
|
||||||
$this->collection = new \OCA\DAV\Comments\EntityCollection(
|
$this->collection = new \OCA\DAV\Comments\EntityCollection(
|
||||||
|
@ -43,6 +45,7 @@ class EntityCollection extends \Test\TestCase {
|
||||||
$this->commentsManager,
|
$this->commentsManager,
|
||||||
$this->folder,
|
$this->folder,
|
||||||
$this->userManager,
|
$this->userManager,
|
||||||
|
$this->userSession,
|
||||||
$this->logger
|
$this->logger
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@ class EntityTypeCollection extends \Test\TestCase {
|
||||||
protected $userManager;
|
protected $userManager;
|
||||||
protected $logger;
|
protected $logger;
|
||||||
protected $collection;
|
protected $collection;
|
||||||
|
protected $userSession;
|
||||||
|
|
||||||
public function setUp() {
|
public function setUp() {
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
@ -37,6 +38,7 @@ class EntityTypeCollection extends \Test\TestCase {
|
||||||
$this->commentsManager = $this->getMock('\OCP\Comments\ICommentsManager');
|
$this->commentsManager = $this->getMock('\OCP\Comments\ICommentsManager');
|
||||||
$this->folder = $this->getMock('\OCP\Files\Folder');
|
$this->folder = $this->getMock('\OCP\Files\Folder');
|
||||||
$this->userManager = $this->getMock('\OCP\IUserManager');
|
$this->userManager = $this->getMock('\OCP\IUserManager');
|
||||||
|
$this->userSession = $this->getMock('\OCP\IUserSession');
|
||||||
$this->logger = $this->getMock('\OCP\ILogger');
|
$this->logger = $this->getMock('\OCP\ILogger');
|
||||||
|
|
||||||
$this->collection = new \OCA\DAV\Comments\EntityTypeCollection(
|
$this->collection = new \OCA\DAV\Comments\EntityTypeCollection(
|
||||||
|
@ -44,6 +46,7 @@ class EntityTypeCollection extends \Test\TestCase {
|
||||||
$this->commentsManager,
|
$this->commentsManager,
|
||||||
$this->folder,
|
$this->folder,
|
||||||
$this->userManager,
|
$this->userManager,
|
||||||
|
$this->userSession,
|
||||||
$this->logger
|
$this->logger
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue