+ /**
+ * Check if an entry exist by url.
+ *
+ * @ApiDoc(
+ * parameters={
+ * {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"},
+ * {"name"="urls", "dataType"="string", "required"=false, "format"="An array of urls (?urls[]=http...&urls[]=http...)", "description"="Urls (as an array) to check if it exists"}
+ * }
+ * )
+ *
+ * @return JsonResponse
+ */
+ public function getEntriesExistsAction(Request $request)
+ {
+ $this->validateAuthentication();
+
+ $urls = $request->query->get('urls', []);
+
+ // handle multiple urls first
+ if (!empty($urls)) {
+ $results = [];
+ foreach ($urls as $url) {
+ $res = $this->getDoctrine()
+ ->getRepository('WallabagCoreBundle:Entry')
+ ->findByUrlAndUserId($url, $this->getUser()->getId());
+
+ $results[$url] = false === $res ? false : true;
+ }
+
+ $json = $this->get('serializer')->serialize($results, 'json');
+
+ return (new JsonResponse())->setJson($json);
+ }
+
+ // let's see if it is a simple url?
+ $url = $request->query->get('url', '');
+
+ if (empty($url)) {
+ throw $this->createAccessDeniedException('URL is empty?, logged user id: '.$this->getUser()->getId());
+ }
+
+ $res = $this->getDoctrine()
+ ->getRepository('WallabagCoreBundle:Entry')
+ ->findByUrlAndUserId($url, $this->getUser()->getId());
+
+ $exists = false === $res ? false : true;
+
+ $json = $this->get('serializer')->serialize(['exists' => $exists], 'json');
+
+ return (new JsonResponse())->setJson($json);
+ }
+