Version 5.1 - All the GraphQL #32

Closed
timw4mail wants to merge 1160 commits from develop into master
10 changed files with 36 additions and 104 deletions
Showing only changes of commit 6b1f39525d - Show all commits

View File

@ -34,7 +34,6 @@ class Manga extends Controller {
public function __construct(ContainerInterface $container) public function __construct(ContainerInterface $container)
{ {
parent::__construct($container); parent::__construct($container);
$config = $container->get('config');
$this->model = new MangaModel($container); $this->model = new MangaModel($container);
$this->base_data = array_merge($this->base_data, [ $this->base_data = array_merge($this->base_data, [
'menu_name' => 'manga_list', 'menu_name' => 'manga_list',

View File

@ -1,11 +0,0 @@
<?php
namespace Aviat\AnimeClient\Controller;
use Aviat\Ion\Di\ContainerInterface;
use Aviat\AnimeClient\Controller;
class Stats extends Controller {
}
// End of Stats.php

View File

@ -53,16 +53,6 @@ class MenuGenerator extends UrlGenerator {
*/ */
protected function parse_config() protected function parse_config()
{ {
// Note: Children menus have urls based on the
// current url path
/*
parsed = {
menu_name: {
title: 'full_url_path'
}
}
*/
$parsed = []; $parsed = [];
foreach ($this->menus as $name => $menu) foreach ($this->menus as $name => $menu)

View File

@ -68,11 +68,7 @@ class Model {
// Cache the file if it doesn't already exist // Cache the file if it doesn't already exist
if ( ! file_exists($cached_path)) if ( ! file_exists($cached_path))
{ {
/*if (ini_get('allow_url_fopen')) if (function_exists('curl_init'))
{
copy($api_path, $cached_path);
}
else*/if (function_exists('curl_init'))
{ {
$ch = curl_init($api_path); $ch = curl_init($api_path);
$fp = fopen($cached_path, 'wb'); $fp = fopen($cached_path, 'wb');
@ -84,6 +80,10 @@ class Model {
curl_close($ch); curl_close($ch);
fclose($fp); fclose($fp);
} }
else if (ini_get('allow_url_fopen'))
{
copy($api_path, $cached_path);
}
else else
{ {
throw new DomainException("Couldn't cache images because they couldn't be downloaded."); throw new DomainException("Couldn't cache images because they couldn't be downloaded.");

View File

@ -99,7 +99,7 @@ class Manga extends API {
]; ];
$response = $this->client->get('manga_library_entries', $config); $response = $this->client->get('manga_library_entries', $config);
$data = $this->_check_cache($status, $response); $data = $this->_check_cache($response);
$output = $this->map_by_status($data); $output = $this->map_by_status($data);
return (array_key_exists($status, $output)) ? $output[$status] : $output; return (array_key_exists($status, $output)) ? $output[$status] : $output;
@ -108,11 +108,10 @@ class Manga extends API {
/** /**
* Check the status of the cache and return the appropriate response * Check the status of the cache and return the appropriate response
* *
* @param string $status
* @param \GuzzleHttp\Message\Response $response * @param \GuzzleHttp\Message\Response $response
* @return array * @return array
*/ */
private function _check_cache($status, $response) private function _check_cache($response)
{ {
// Bail out early if there isn't any manga data // Bail out early if there isn't any manga data
$api_data = json_decode($response->getBody(), TRUE); $api_data = json_decode($response->getBody(), TRUE);

View File

@ -1,30 +0,0 @@
<?php
/**
* Anime API Model
*/
namespace Aviat\AnimeClient\Model;
use Avait\Ion\Di\ContainerInterface;
use Aviat\AnimeClient\Model\DB;
/**
* Base Model for stats about lists and collection(s)
*/
class Stats extends DB {
use StatsChartsTrait;
/**
* Constructor
*
* @param Container $container
*/
public function __construct(ContainerInterface $container)
{
parent::__construct($container);
$this->chartSetup();
}
}
// End of Stats.php

View File

@ -1,29 +0,0 @@
<?php
namespace Aviat\AnimeClient\Model;
use CpChart\Services\pChartFactory;
/**
* Trait for chart generation
*/
trait StatsChartsTrait {
/**
* @var pChartFactory
*/
protected $pchart;
/**
* Initial setup method
*
* @return void
*/
protected function chartSetup()
{
$this->pchart = new pChartFactory();
}
}
// End of StatsChartsTrait.php

View File

@ -90,7 +90,6 @@ class UrlGenerator extends RoutingBase {
*/ */
public function full_url($path = "", $type = "anime") public function full_url($path = "", $type = "anime")
{ {
$config_path = trim($this->__get("{$type}_path"), "/");
$config_default_route = $this->__get("default_{$type}_path"); $config_default_route = $this->__get("default_{$type}_path");
// Remove beginning/trailing slashes // Remove beginning/trailing slashes

View File

@ -248,7 +248,6 @@ class DispatcherTest extends AnimeClient_TestCase {
'anime' => 'Aviat\AnimeClient\Controller\Anime', 'anime' => 'Aviat\AnimeClient\Controller\Anime',
'manga' => 'Aviat\AnimeClient\Controller\Manga', 'manga' => 'Aviat\AnimeClient\Controller\Manga',
'collection' => 'Aviat\AnimeClient\Controller\Collection', 'collection' => 'Aviat\AnimeClient\Controller\Collection',
'stats' => 'Aviat\AnimeClient\Controller\Stats'
] ]
], ],
'empty_controller_list' => [ 'empty_controller_list' => [

View File

@ -23,13 +23,29 @@ class ArrayTypeTest extends AnimeClient_TestCase {
'keys' => 'array_keys', 'keys' => 'array_keys',
'merge' => 'array_merge', 'merge' => 'array_merge',
'pad' => 'array_pad', 'pad' => 'array_pad',
'product' => 'array_product',
'random' => 'array_rand', 'random' => 'array_rand',
'reduce' => 'array_reduce', 'reduce' => 'array_reduce',
'reverse' => 'array_reverse',
]; ];
return [ return [
'array_merge' => [
'method' => 'merge',
'array' => [1, 3, 5, 7],
'args' => [[2, 4, 6, 8]],
'expected' => [1, 3, 5, 7, 2, 4, 6, 8]
],
'array_product' => [
'method' => 'product',
'array' => [1, 2, 3],
'args' => [],
'expected' => 6
],
'array_reverse' => [
'method' => 'reverse',
'array' => [1, 2, 3, 4, 5],
'args' => [],
'expected' => [5, 4, 3, 2, 1]
],
'array_sum' => [ 'array_sum' => [
'method' => 'sum', 'method' => 'sum',
'array' => [1, 2, 3, 4, 5, 6], 'array' => [1, 2, 3, 4, 5, 6],
@ -40,7 +56,7 @@ class ArrayTypeTest extends AnimeClient_TestCase {
'method' => 'unique', 'method' => 'unique',
'array' => [1, 1, 3, 2, 2, 2, 3, 3, 5], 'array' => [1, 1, 3, 2, 2, 2, 3, 3, 5],
'args' => [SORT_REGULAR], 'args' => [SORT_REGULAR],
'expected' => [0=>1, 2=>3, 3=>2, 8=>5] 'expected' => [0 => 1, 2 => 3, 3 => 2, 8 => 5]
], ],
'array_values' => [ 'array_values' => [
'method' => 'values', 'method' => 'values',
@ -63,6 +79,16 @@ class ArrayTypeTest extends AnimeClient_TestCase {
$this->assertEquals($expected, $actual); $this->assertEquals($expected, $actual);
} }
public function testMap()
{
$obj = $this->arr([1, 2, 3]);
$actual = $obj->map(function($item) {
return $item * 2;
});
$this->assertEquals([2, 4, 6], $actual);
}
public function testBadCall() public function testBadCall()
{ {
$obj = $this->arr([]); $obj = $this->arr([]);
@ -71,16 +97,6 @@ class ArrayTypeTest extends AnimeClient_TestCase {
$obj->foo(); $obj->foo();
} }
public function testMerge()
{
$obj = $this->arr([1, 3, 5, 7]);
$even_array = [2, 4, 6, 8];
$expected = [1, 3, 5, 7, 2, 4, 6, 8];
$actual = $obj->merge($even_array);
$this->assertEquals($expected, $actual);
}
public function testShuffle() public function testShuffle()
{ {
$original = [1, 2, 3, 4]; $original = [1, 2, 3, 4];