From 0a616a0480cc49bd8e7979112af6bc02d97b2ba3 Mon Sep 17 00:00:00 2001 From: cuneytsenturk Date: Wed, 3 Oct 2018 12:10:59 +0300 Subject: [PATCH] App store vendor's app page added. --- app/Http/Controllers/Modules/Tiles.php | 28 +++++++++++++++++++++ app/Traits/Modules.php | 22 ++++++++++++++++ resources/views/modules/item/show.blade.php | 2 +- routes/web.php | 1 + 4 files changed, 52 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Modules/Tiles.php b/app/Http/Controllers/Modules/Tiles.php index 75dc30f4c..155d3b3f7 100644 --- a/app/Http/Controllers/Modules/Tiles.php +++ b/app/Http/Controllers/Modules/Tiles.php @@ -40,6 +40,34 @@ class Tiles extends Controller return view('modules.tiles.index', compact('title', 'modules', 'installed')); } + /** + * Show the form for viewing the specified resource. + * + * @param $alias + * + * @return Response + */ + public function vendorModules($alias) + { + $this->checkApiToken(); + + $page = request('page', 1); + + $request = [ + 'query' => [ + 'page' => $page, + ] + ]; + + $data = $this->getModulesByVendor($alias, $request); + + $title = $data->vendor->name; + $modules = $data->modules; + $installed = Module::all()->pluck('status', 'alias')->toArray(); + + return view('modules.tiles.index', compact('title', 'modules', 'installed')); + } + /** * Show the form for viewing the specified resource. * diff --git a/app/Traits/Modules.php b/app/Traits/Modules.php index ec1c56bed..5076ecf1c 100644 --- a/app/Traits/Modules.php +++ b/app/Traits/Modules.php @@ -90,6 +90,28 @@ trait Modules return []; } + public function getVendors() + { + $response = $this->getRemote('apps/vendors'); + + if ($response && ($response->getStatusCode() == 200)) { + return json_decode($response->getBody())->data; + } + + return []; + } + + public function getModulesByVendor($alias, $data = []) + { + $response = $this->getRemote('apps/vendors/' . $alias, 'GET', $data); + + if ($response && ($response->getStatusCode() == 200)) { + return json_decode($response->getBody())->data; + } + + return []; + } + public function getMyModules($data = []) { $response = $this->getRemote('apps/my', 'GET', $data); diff --git a/resources/views/modules/item/show.blade.php b/resources/views/modules/item/show.blade.php index af8f8c408..e416679ed 100644 --- a/resources/views/modules/item/show.blade.php +++ b/resources/views/modules/item/show.blade.php @@ -142,7 +142,7 @@ {{ trans_choice('general.vendors', 1) }} - {{ $module->vendor_name }} + {{ $module->vendor_name }} {{ trans('footer.version') }} diff --git a/routes/web.php b/routes/web.php index 942e8df00..7fb4a61c8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -140,6 +140,7 @@ Route::group(['middleware' => 'language'], function () { Route::resource('home', 'Modules\Home'); Route::resource('my', 'Modules\My'); Route::get('categories/{alias}', 'Modules\Tiles@categoryModules'); + Route::get('vendors/{alias}', 'Modules\Tiles@vendorModules'); Route::get('paid', 'Modules\Tiles@paidModules'); Route::get('new', 'Modules\Tiles@newModules'); Route::get('free', 'Modules\Tiles@freeModules');