From f0abc22d09d2e38d3dd408425821a89da3d21377 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Fri, 7 Oct 2016 20:37:01 +0200 Subject: Ability to check multiple urls in API --- .../Controller/WallabagRestController.php | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/Wallabag/ApiBundle/Controller') diff --git a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php index a0d9d4f3..6dd03c1b 100644 --- a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php +++ b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php @@ -27,7 +27,8 @@ class WallabagRestController extends FOSRestController * * @ApiDoc( * parameters={ - * {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"} + * {"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"} * } * ) * @@ -37,6 +38,25 @@ class WallabagRestController extends FOSRestController { $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)) { -- cgit v1.2.3