diff --git a/.gitignore b/.gitignore index 05d830d8..6d8a5863 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ vendor **/logs/** **/coverage/** **/docs/** +**/node_modules/** public/images/* composer.lock *.sqlite @@ -21,3 +22,5 @@ build/** !build/*.xml !build/*.php app/config/*.toml +!app/config/*.toml.example +phinx.yml \ No newline at end of file diff --git a/src/Aviat/AnimeClient/Controller/Manga.php b/src/Aviat/AnimeClient/Controller/Manga.php index 56377d93..5bc329ab 100644 --- a/src/Aviat/AnimeClient/Controller/Manga.php +++ b/src/Aviat/AnimeClient/Controller/Manga.php @@ -26,6 +26,12 @@ class Manga extends Controller { use \Aviat\Ion\StringWrapper; + /** + * The cache manager + * @var \Aviat\Ion\Cache\CacheInterface + */ + protected $cache; + /** * The manga model * @var object $model @@ -47,6 +53,7 @@ class Manga extends Controller { { parent::__construct($container); + $this->cache = $container->get('cache'); $this->model = $container->get('manga-model'); $this->base_data = array_merge($this->base_data, [ 'menu_name' => 'manga_list', @@ -82,8 +89,8 @@ class Manga extends Controller { ]; $data = ($status !== 'all') - ? [$map[$status] => $this->model->get_list($map[$status])] - : $this->model->get_all_lists(); + ? [$map[$status] => $this->cache->get($this->model, 'get_list', ['status' => $map[$status]]) ] + : $this->cache->get($this->model, 'get_all_lists'); $this->outputHTML('manga/' . $view_map[$view], [ 'title' => $title, @@ -137,6 +144,7 @@ class Manga extends Controller { if ($result['statusCode'] >= 200 && $result['statusCode'] < 300) { $this->set_flash_message('Added new manga to list', 'success'); + $this->cache->purge(); } else { @@ -204,6 +212,7 @@ class Manga extends Controller { : "{$m['romaji_title']}"; $this->set_flash_message("Successfully updated {$title}.", 'success'); + $this->cache->purge(); } else { @@ -221,6 +230,7 @@ class Manga extends Controller { public function update() { $result = $this->model->update($this->request->getParsedBody()); + $this->cache->purge(); $this->outputJSON($result['body'], $result['statusCode']); } } diff --git a/src/Aviat/AnimeClient/Model/Manga.php b/src/Aviat/AnimeClient/Model/Manga.php index 26a12c4c..b3246113 100644 --- a/src/Aviat/AnimeClient/Model/Manga.php +++ b/src/Aviat/AnimeClient/Model/Manga.php @@ -215,7 +215,7 @@ class Manga extends API { ]; $response = $this->get('manga_library_entries', $config); - $data = $this->_check_cache($response); + $data = $this->transform($response); $output = $this->map_by_status($data); return (array_key_exists($status, $output)) @@ -230,7 +230,7 @@ class Manga extends API { * @codeCoverageIgnore * @return array */ - private function _check_cache($response) + private function transform($response) { // Bail out early if there isn't any manga data $api_data = Json::decode($response->getBody(), TRUE); @@ -239,30 +239,10 @@ class Manga extends API { return []; } - $cache_file = _dir($this->config->get('data_cache_path'), 'manga.json'); - $transformed_cache_file = _dir( - $this->config->get('data_cache_path'), - 'manga-transformed.json' - ); - - $cached_data = file_exists($cache_file) - ? Json::decodeFile($cache_file) - : []; - - if ($cached_data === $api_data && file_exists($transformed_cache_file)) - { - return Json::decodeFile($transformed_cache_file); - } - else - { - Json::encodeFile($cache_file, $api_data); - - $zippered_data = $this->zipper_lists($api_data); - $transformer = new Transformer\MangaListTransformer(); - $transformed_data = $transformer->transform_collection($zippered_data); - Json::encodeFile($transformed_cache_file, $transformed_data); - return $transformed_data; - } + $zippered_data = $this->zipper_lists($api_data); + $transformer = new Transformer\MangaListTransformer(); + $transformed_data = $transformer->transform_collection($zippered_data); + return $transformed_data; } /**