use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag;
-use Wallabag\CoreBundle\Event\EntrySavedEvent;
use Wallabag\CoreBundle\Event\EntryDeletedEvent;
+use Wallabag\CoreBundle\Event\EntrySavedEvent;
+use Wallabag\CoreBundle\Event\EntryTaggedEvent;
+use Wallabag\CoreBundle\Event\EntryUpdatedEvent;
class EntryRestController extends WallabagRestController
{
$this->upsertEntry($entry, $request, true);
+ $this->get('event_dispatcher')->dispatch(EntryUpdatedEvent::NAME, new EntryUpdatedEvent($entry));
+
return $this->sendResponse($entry);
}
$em->flush();
// entry saved, dispatch event about it!
+ $this->get('event_dispatcher')->dispatch(EntryUpdatedEvent::NAME, new EntryUpdatedEvent($entry));
$this->get('event_dispatcher')->dispatch(EntrySavedEvent::NAME, new EntrySavedEvent($entry));
return $this->sendResponse($entry);
$this->validateUserAccess($entry->getUser()->getId());
$tags = $request->request->get('tags', '');
+ $tagsEntries = [];
if (!empty($tags)) {
$this->get('wallabag_core.tags_assigner')->assignTagsToEntry($entry, $tags);
}
$em->persist($entry);
$em->flush();
+ $this->get('event_dispatcher')->dispatch(EntryTaggedEvent::NAME, new EntryTaggedEvent($entry, $tagsEntries));
+
return $this->sendResponse($entry);
}
}
if (!is_null($isArchived)) {
- $entry->setArchived((bool) $isArchived);
+ $entry->setArchived((bool)$isArchived);
}
if (!is_null($isStarred)) {
- $entry->setStarred((bool) $isStarred);
+ $entry->setStarred((bool)$isStarred);
}
if (!empty($tags)) {
}
if (!is_null($isPublic)) {
- if (true === (bool) $isPublic && null === $entry->getUid()) {
+ if (true === (bool)$isPublic && null === $entry->getUid()) {
$entry->generateUid();
- } elseif (false === (bool) $isPublic) {
+ } elseif (false === (bool)$isPublic) {
$entry->cleanUid();
}
}
// entry saved, dispatch event about it!
$this->get('event_dispatcher')->dispatch(EntrySavedEvent::NAME, new EntrySavedEvent($entry));
}
+
+ /**
+ * Gets history since a date.
+ *
+ * @ApiDoc(
+ * parameters={
+ * {"name"="since", "dataType"="integer", "required"=true, "format"="A timestamp", "description"="Timestamp of the history's start"},
+ * }
+ * )
+ *
+ * @return JsonResponse
+ */
+ public function getEntriesHistoryAction(Request $request)
+ {
+ $this->validateAuthentication();
+
+ $res = $this->getDoctrine()
+ ->getRepository('WallabagCoreBundle:Change')
+ ->findChangesSinceDate($request->query->get('since'));
+
+ $json = $this->get('serializer')->serialize($res, 'json');
+
+ return (new JsonResponse())->setJson($json);
+ }
}