diff options
author | ArthurHoaro <arthur@hoa.ro> | 2017-05-07 17:40:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-07 17:40:17 +0200 |
commit | b4189928f84758e1589715dfe04e2d966a4f3b88 (patch) | |
tree | f17b8fa91fe8244fed7a913d64ce3220551916ff /application/api/controllers | |
parent | a4af59f47103a3f9c903eeddb1e30ab9cb7344f0 (diff) | |
parent | b86aeccf6a99a9617c66cded7252a33b1df560cd (diff) | |
download | Shaarli-b4189928f84758e1589715dfe04e2d966a4f3b88.tar.gz Shaarli-b4189928f84758e1589715dfe04e2d966a4f3b88.tar.zst Shaarli-b4189928f84758e1589715dfe04e2d966a4f3b88.zip |
Merge pull request #858 from ArthurHoaro/api/history-entries
Add history entries for API endpoint
Diffstat (limited to 'application/api/controllers')
-rw-r--r-- | application/api/controllers/ApiController.php | 9 | ||||
-rw-r--r-- | application/api/controllers/History.php | 3 | ||||
-rw-r--r-- | application/api/controllers/Links.php | 5 |
3 files changed, 13 insertions, 4 deletions
diff --git a/application/api/controllers/ApiController.php b/application/api/controllers/ApiController.php index f35b923a..3be85b98 100644 --- a/application/api/controllers/ApiController.php +++ b/application/api/controllers/ApiController.php | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | namespace Shaarli\Api\Controllers; | 3 | namespace Shaarli\Api\Controllers; |
4 | 4 | ||
5 | use Shaarli\Config\ConfigManager; | ||
5 | use \Slim\Container; | 6 | use \Slim\Container; |
6 | 7 | ||
7 | /** | 8 | /** |
@@ -19,7 +20,7 @@ abstract class ApiController | |||
19 | protected $ci; | 20 | protected $ci; |
20 | 21 | ||
21 | /** | 22 | /** |
22 | * @var \ConfigManager | 23 | * @var ConfigManager |
23 | */ | 24 | */ |
24 | protected $conf; | 25 | protected $conf; |
25 | 26 | ||
@@ -29,6 +30,11 @@ abstract class ApiController | |||
29 | protected $linkDb; | 30 | protected $linkDb; |
30 | 31 | ||
31 | /** | 32 | /** |
33 | * @var \History | ||
34 | */ | ||
35 | protected $history; | ||
36 | |||
37 | /** | ||
32 | * @var int|null JSON style option. | 38 | * @var int|null JSON style option. |
33 | */ | 39 | */ |
34 | protected $jsonStyle; | 40 | protected $jsonStyle; |
@@ -45,6 +51,7 @@ abstract class ApiController | |||
45 | $this->ci = $ci; | 51 | $this->ci = $ci; |
46 | $this->conf = $ci->get('conf'); | 52 | $this->conf = $ci->get('conf'); |
47 | $this->linkDb = $ci->get('db'); | 53 | $this->linkDb = $ci->get('db'); |
54 | $this->history = $ci->get('history'); | ||
48 | if ($this->conf->get('dev.debug', false)) { | 55 | if ($this->conf->get('dev.debug', false)) { |
49 | $this->jsonStyle = JSON_PRETTY_PRINT; | 56 | $this->jsonStyle = JSON_PRETTY_PRINT; |
50 | } else { | 57 | } else { |
diff --git a/application/api/controllers/History.php b/application/api/controllers/History.php index c4ff3e5d..2ff9deaf 100644 --- a/application/api/controllers/History.php +++ b/application/api/controllers/History.php | |||
@@ -28,8 +28,7 @@ class History extends ApiController | |||
28 | */ | 28 | */ |
29 | public function getHistory($request, $response) | 29 | public function getHistory($request, $response) |
30 | { | 30 | { |
31 | $history = (new \History($this->conf->get('resource.history')))->getHistory(); | 31 | $history = $this->history->getHistory(); |
32 | $history = array_reverse($history); | ||
33 | 32 | ||
34 | // Return history operations from the {offset}th, starting from {since}. | 33 | // Return history operations from the {offset}th, starting from {since}. |
35 | $since = \DateTime::createFromFormat(\DateTime::ATOM, $request->getParam('since')); | 34 | $since = \DateTime::createFromFormat(\DateTime::ATOM, $request->getParam('since')); |
diff --git a/application/api/controllers/Links.php b/application/api/controllers/Links.php index a40e974d..eb78dd26 100644 --- a/application/api/controllers/Links.php +++ b/application/api/controllers/Links.php | |||
@@ -141,6 +141,7 @@ class Links extends ApiController | |||
141 | 141 | ||
142 | $this->linkDb[$link['id']] = $link; | 142 | $this->linkDb[$link['id']] = $link; |
143 | $this->linkDb->save($this->conf->get('resource.page_cache')); | 143 | $this->linkDb->save($this->conf->get('resource.page_cache')); |
144 | $this->history->addLink($link); | ||
144 | $out = ApiUtils::formatLink($link, index_url($this->ci['environment'])); | 145 | $out = ApiUtils::formatLink($link, index_url($this->ci['environment'])); |
145 | $redirect = $this->ci->router->relativePathFor('getLink', ['id' => $link['id']]); | 146 | $redirect = $this->ci->router->relativePathFor('getLink', ['id' => $link['id']]); |
146 | return $response->withAddedHeader('Location', $redirect) | 147 | return $response->withAddedHeader('Location', $redirect) |
@@ -184,6 +185,7 @@ class Links extends ApiController | |||
184 | $responseLink = ApiUtils::updateLink($responseLink, $requestLink); | 185 | $responseLink = ApiUtils::updateLink($responseLink, $requestLink); |
185 | $this->linkDb[$responseLink['id']] = $responseLink; | 186 | $this->linkDb[$responseLink['id']] = $responseLink; |
186 | $this->linkDb->save($this->conf->get('resource.page_cache')); | 187 | $this->linkDb->save($this->conf->get('resource.page_cache')); |
188 | $this->history->updateLink($responseLink); | ||
187 | 189 | ||
188 | $out = ApiUtils::formatLink($responseLink, $index); | 190 | $out = ApiUtils::formatLink($responseLink, $index); |
189 | return $response->withJson($out, 200, $this->jsonStyle); | 191 | return $response->withJson($out, 200, $this->jsonStyle); |
@@ -205,9 +207,10 @@ class Links extends ApiController | |||
205 | if (! isset($this->linkDb[$args['id']])) { | 207 | if (! isset($this->linkDb[$args['id']])) { |
206 | throw new ApiLinkNotFoundException(); | 208 | throw new ApiLinkNotFoundException(); |
207 | } | 209 | } |
208 | 210 | $link = $this->linkDb[$args['id']]; | |
209 | unset($this->linkDb[(int) $args['id']]); | 211 | unset($this->linkDb[(int) $args['id']]); |
210 | $this->linkDb->save($this->conf->get('resource.page_cache')); | 212 | $this->linkDb->save($this->conf->get('resource.page_cache')); |
213 | $this->history->deleteLink($link); | ||
211 | 214 | ||
212 | return $response->withStatus(204); | 215 | return $response->withStatus(204); |
213 | } | 216 | } |