aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Wallabag/ApiBundle/Controller/WallabagRestController.php')
-rw-r--r--src/Wallabag/ApiBundle/Controller/WallabagRestController.php49
1 files changed, 47 insertions, 2 deletions
diff --git a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
index dd17ef97..791bf80b 100644
--- a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
@@ -23,6 +23,38 @@ class WallabagRestController extends FOSRestController
23 } 23 }
24 24
25 /** 25 /**
26 * Check if an entry exist by url.
27 *
28 * @ApiDoc(
29 * parameters={
30 * {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"}
31 * }
32 * )
33 *
34 * @return JsonResponse
35 */
36 public function getEntriesExistsAction(Request $request)
37 {
38 $this->validateAuthentication();
39
40 $url = $request->query->get('url', '');
41
42 if (empty($url)) {
43 throw $this->createAccessDeniedException('URL is empty?, logged user id: '.$user->getId());
44 }
45
46 $res = $this->getDoctrine()
47 ->getRepository('WallabagCoreBundle:Entry')
48 ->findByUrlAndUserId($url, $this->getUser()->getId());
49
50 $exists = false === $res ? false : true;
51
52 $json = $this->get('serializer')->serialize(['exists' => $exists], 'json');
53
54 return (new JsonResponse())->setJson($json);
55 }
56
57 /**
26 * Retrieve all entries. It could be filtered by many options. 58 * Retrieve all entries. It could be filtered by many options.
27 * 59 *
28 * @ApiDoc( 60 * @ApiDoc(
@@ -50,8 +82,8 @@ class WallabagRestController extends FOSRestController
50 $order = $request->query->get('order', 'desc'); 82 $order = $request->query->get('order', 'desc');
51 $page = (int) $request->query->get('page', 1); 83 $page = (int) $request->query->get('page', 1);
52 $perPage = (int) $request->query->get('perPage', 30); 84 $perPage = (int) $request->query->get('perPage', 30);
53 $since = $request->query->get('since', 0);
54 $tags = $request->query->get('tags', ''); 85 $tags = $request->query->get('tags', '');
86 $since = $request->query->get('since', 0);
55 87
56 $pager = $this->getDoctrine() 88 $pager = $this->getDoctrine()
57 ->getRepository('WallabagCoreBundle:Entry') 89 ->getRepository('WallabagCoreBundle:Entry')
@@ -63,7 +95,20 @@ class WallabagRestController extends FOSRestController
63 $pagerfantaFactory = new PagerfantaFactory('page', 'perPage'); 95 $pagerfantaFactory = new PagerfantaFactory('page', 'perPage');
64 $paginatedCollection = $pagerfantaFactory->createRepresentation( 96 $paginatedCollection = $pagerfantaFactory->createRepresentation(
65 $pager, 97 $pager,
66 new Route('api_get_entries', [], UrlGeneratorInterface::ABSOLUTE_URL) 98 new Route(
99 'api_get_entries',
100 [
101 'archive' => $isArchived,
102 'starred' => $isStarred,
103 'sort' => $sort,
104 'order' => $order,
105 'page' => $page,
106 'perPage' => $perPage,
107 'tags' => $tags,
108 'since' => $since,
109 ],
110 UrlGeneratorInterface::ABSOLUTE_URL
111 )
67 ); 112 );
68 113
69 $json = $this->get('serializer')->serialize($paginatedCollection, 'json'); 114 $json = $this->get('serializer')->serialize($paginatedCollection, 'json');