diff options
author | Jeremy Benoist <jeremy.benoist@gmail.com> | 2016-10-07 20:37:01 +0200 |
---|---|---|
committer | Jeremy Benoist <jeremy.benoist@gmail.com> | 2016-10-07 20:37:01 +0200 |
commit | f0abc22d09d2e38d3dd408425821a89da3d21377 (patch) | |
tree | 7c25b888d8ea19b4725c3dd9b63da0a57419df1c /src/Wallabag/ApiBundle | |
parent | 233a1081eaab7bb4a157015c33755a66afbdb922 (diff) | |
download | wallabag-f0abc22d09d2e38d3dd408425821a89da3d21377.tar.gz wallabag-f0abc22d09d2e38d3dd408425821a89da3d21377.tar.zst wallabag-f0abc22d09d2e38d3dd408425821a89da3d21377.zip |
Ability to check multiple urls in API
Diffstat (limited to 'src/Wallabag/ApiBundle')
-rw-r--r-- | src/Wallabag/ApiBundle/Controller/WallabagRestController.php | 22 |
1 files changed, 21 insertions, 1 deletions
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 | |||
27 | * | 27 | * |
28 | * @ApiDoc( | 28 | * @ApiDoc( |
29 | * parameters={ | 29 | * parameters={ |
30 | * {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"} | 30 | * {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"}, |
31 | * {"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"} | ||
31 | * } | 32 | * } |
32 | * ) | 33 | * ) |
33 | * | 34 | * |
@@ -37,6 +38,25 @@ class WallabagRestController extends FOSRestController | |||
37 | { | 38 | { |
38 | $this->validateAuthentication(); | 39 | $this->validateAuthentication(); |
39 | 40 | ||
41 | $urls = $request->query->get('urls', []); | ||
42 | |||
43 | // handle multiple urls first | ||
44 | if (!empty($urls)) { | ||
45 | $results = []; | ||
46 | foreach ($urls as $url) { | ||
47 | $res = $this->getDoctrine() | ||
48 | ->getRepository('WallabagCoreBundle:Entry') | ||
49 | ->findByUrlAndUserId($url, $this->getUser()->getId()); | ||
50 | |||
51 | $results[$url] = false === $res ? false : true; | ||
52 | } | ||
53 | |||
54 | $json = $this->get('serializer')->serialize($results, 'json'); | ||
55 | |||
56 | return (new JsonResponse())->setJson($json); | ||
57 | } | ||
58 | |||
59 | // let's see if it is a simple url? | ||
40 | $url = $request->query->get('url', ''); | 60 | $url = $request->query->get('url', ''); |
41 | 61 | ||
42 | if (empty($url)) { | 62 | if (empty($url)) { |