diff options
Diffstat (limited to 'application/api/controllers')
-rw-r--r-- | application/api/controllers/Links.php | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/application/api/controllers/Links.php b/application/api/controllers/Links.php index 0a7968e3..d4f1a09c 100644 --- a/application/api/controllers/Links.php +++ b/application/api/controllers/Links.php | |||
@@ -4,6 +4,7 @@ namespace Shaarli\Api\Controllers; | |||
4 | 4 | ||
5 | use Shaarli\Api\ApiUtils; | 5 | use Shaarli\Api\ApiUtils; |
6 | use Shaarli\Api\Exceptions\ApiBadParametersException; | 6 | use Shaarli\Api\Exceptions\ApiBadParametersException; |
7 | use Shaarli\Api\Exceptions\ApiLinkNotFoundException; | ||
7 | use Slim\Http\Request; | 8 | use Slim\Http\Request; |
8 | use Slim\Http\Response; | 9 | use Slim\Http\Response; |
9 | 10 | ||
@@ -58,8 +59,7 @@ class Links extends ApiController | |||
58 | $limit = $request->getParam('limit'); | 59 | $limit = $request->getParam('limit'); |
59 | if (empty($limit)) { | 60 | if (empty($limit)) { |
60 | $limit = self::$DEFAULT_LIMIT; | 61 | $limit = self::$DEFAULT_LIMIT; |
61 | } | 62 | } else if (ctype_digit($limit)) { |
62 | else if (ctype_digit($limit)) { | ||
63 | $limit = intval($limit); | 63 | $limit = intval($limit); |
64 | } else if ($limit === 'all') { | 64 | } else if ($limit === 'all') { |
65 | $limit = count($links); | 65 | $limit = count($links); |
@@ -83,4 +83,25 @@ class Links extends ApiController | |||
83 | 83 | ||
84 | return $response->withJson($out, 200, $this->jsonStyle); | 84 | return $response->withJson($out, 200, $this->jsonStyle); |
85 | } | 85 | } |
86 | |||
87 | /** | ||
88 | * Return a single formatted link by its ID. | ||
89 | * | ||
90 | * @param Request $request Slim request. | ||
91 | * @param Response $response Slim response. | ||
92 | * @param array $args Path parameters. including the ID. | ||
93 | * | ||
94 | * @return Response containing the link array. | ||
95 | * | ||
96 | * @throws ApiLinkNotFoundException generating a 404 error. | ||
97 | */ | ||
98 | public function getLink($request, $response, $args) | ||
99 | { | ||
100 | if (! isset($this->linkDb[$args['id']])) { | ||
101 | throw new ApiLinkNotFoundException(); | ||
102 | } | ||
103 | $index = index_url($this->ci['environment']); | ||
104 | $out = ApiUtils::formatLink($this->linkDb[$args['id']], $index); | ||
105 | return $response->withJson($out, 200, $this->jsonStyle); | ||
106 | } | ||
86 | } | 107 | } |