From 44b98a44c7e4993fdcf9db769c10a4fba3523b9b Mon Sep 17 00:00:00 2001 From: DariusIII Date: Fri, 1 Jun 2018 01:06:08 +0200 Subject: [PATCH] Start building API v2 --- Blacklight/http/Capabilities.php | 13 +---- Changelog | 2 + app/Http/Controllers/Api/ApiV2Controller.php | 52 ++++++++++++++++++++ app/Http/Controllers/BasePageController.php | 2 +- routes/api.php | 7 +++ 5 files changed, 64 insertions(+), 12 deletions(-) create mode 100644 app/Http/Controllers/Api/ApiV2Controller.php diff --git a/Blacklight/http/Capabilities.php b/Blacklight/http/Capabilities.php index dc04d3919..c13b01599 100755 --- a/Blacklight/http/Capabilities.php +++ b/Blacklight/http/Capabilities.php @@ -121,16 +121,7 @@ abstract class Capabilities */ public function getForMenu(): array { - $serverroot = ''; - $https = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on'); - - if (isset($_SERVER['SERVER_NAME'])) { - $serverroot = ( - ($https === true ? 'https://' : 'http://').$_SERVER['SERVER_NAME']. - (((int) $_SERVER['SERVER_PORT'] !== 80 && (int) $_SERVER['SERVER_PORT'] !== 443) ? ':'.$_SERVER['SERVER_PORT'] : ''). - WWW_TOP.'/' - ); - } + $serverroot = url('/'); return [ 'server' => [ @@ -141,7 +132,7 @@ abstract class Capabilities 'email' => Settings::settingValue('site.main.email'), 'meta' => Settings::settingValue('site.main.metakeywords'), 'url' => $serverroot, - 'image' => $serverroot.'assets/images/tmux_logo.png', + 'image' => $serverroot.'/assets/images/tmux_logo.png', ], 'limits' => [ 'max' => 100, diff --git a/Changelog b/Changelog index f6612ef89..2f679fdd3 100755 --- a/Changelog +++ b/Changelog @@ -1,3 +1,5 @@ +2018-06-01 DariusIII + * Chg: Start building API v2 2018-05-31 DariusIII * Fix: Fix rsstoken references in Gentele and shared templates * Chg: Rename rsstoken column into api_token diff --git a/app/Http/Controllers/Api/ApiV2Controller.php b/app/Http/Controllers/Api/ApiV2Controller.php new file mode 100644 index 000000000..61a0fbe4c --- /dev/null +++ b/app/Http/Controllers/Api/ApiV2Controller.php @@ -0,0 +1,52 @@ + [ + 'appversion' => (new Versions())->getGitTagInFile(), + 'version' => (new Versions())->getGitTagInRepo(), + 'title' => Settings::settingValue('site.main.title'), + 'strapline' => Settings::settingValue('site.main.strapline'), + 'email' => Settings::settingValue('site.main.email'), + 'meta' => Settings::settingValue('site.main.metakeywords'), + 'url' => $serverroot, + 'image' => $serverroot.'/assets/images/tmux_logo.png', + ], + 'limits' => [ + 'max' => 100, + 'default' => 100, + ], + 'registration' => [ + 'available' => 'yes', + 'open' => (int) Settings::settingValue('..registerstatus') === 0 ? 'yes' : 'no', + ], + 'searching' => [ + 'search' => ['available' => 'yes', 'supportedParams' => 'q'], + 'tv-search' => ['available' => 'yes', 'supportedParams' => 'q,vid,tvdbid,traktid,rid,tvmazeid,imdbid,tmdbid,season,ep'], + 'movie-search' => ['available' => 'yes', 'supportedParams' => 'q,imdbid'], + 'audio-search' => ['available' => 'no', 'supportedParams' => ''], + ], + 'categories' => $category, + ]; + + return response()->json($capabilities); + } +} diff --git a/app/Http/Controllers/BasePageController.php b/app/Http/Controllers/BasePageController.php index a3dee8523..7fb692cb6 100644 --- a/app/Http/Controllers/BasePageController.php +++ b/app/Http/Controllers/BasePageController.php @@ -103,7 +103,7 @@ class BasePageController extends Controller * * @return \Illuminate\Pagination\LengthAwarePaginator */ - public function paginate($query, $totalCount, $items, $page, $path, $reqQuery) + public function paginate($query, $totalCount, $items, $page, $path, $reqQuery): LengthAwarePaginator { return new LengthAwarePaginator($query, $totalCount, $items, $page, ['path' => $path, 'query' => $reqQuery]); } diff --git a/routes/api.php b/routes/api.php index 13249cbdd..d628b43e1 100644 --- a/routes/api.php +++ b/routes/api.php @@ -18,3 +18,10 @@ Route::prefix('v1')->group(function () { Route::post('api', 'ApiController@api'); }); }); + +Route::prefix('v2')->middleware('auth:api')->group(function () { + Route::namespace('Api')->group(function () { + Route::get('capabilities', 'ApiV2Controller@capabilities'); + Route::post('capabilities', 'ApiV2Controller@capabilities'); + }); +});