refactoring part 1

This commit is contained in:
Peter Papp
2021-03-14 12:23:14 +01:00
parent c5e9d29362
commit d0bd866354
26 changed files with 168 additions and 312 deletions
@@ -14,7 +14,7 @@ use Laravel\Cashier\Subscription;
class DashboardController extends Controller
{
/**
* DashboardController constructor.
* @param StripeService $stripe
*/
public function __construct(StripeService $stripe)
{
@@ -13,7 +13,7 @@ use Illuminate\Http\Request;
class InvoiceController extends Controller
{
/**
* PlanController constructor.
* @param StripeService $stripe
*/
public function __construct(StripeService $stripe)
{
@@ -33,7 +33,7 @@ class InvoiceController extends Controller
}
/**
* Get single invoice by $token
* Get single invoice by invoice $token
*
* @param $customer
* @param $token
@@ -41,12 +41,8 @@ class InvoiceController extends Controller
*/
public function show($customer, $token)
{
$settings = json_decode(Setting::all()->pluck('value', 'name')->toJson());
$invoice = $this->stripe->getUserInvoice($customer, $token);
return view('vuefilemanager.invoice')
->with('settings', $settings)
->with('invoice', $invoice);
->with('settings', get_settings_in_json())
->with('invoice', $this->stripe->getUserInvoice($customer, $token));
}
}
@@ -21,12 +21,13 @@ class PagesController extends Controller
public function index()
{
return new PageCollection(
Page::sortable()->paginate(10)
Page::sortable()
->paginate(10)
);
}
/**
* Get page resource
* Get single page resource
*
* @param $page
* @return PageResource
+12 -8
View File
@@ -11,7 +11,10 @@ use App\Http\Tools\Demo;
use App\Models\Plan;
use App\Services\StripeService;
use App\Models\User;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Cache;
use Laravel\Cashier\Subscription;
use Rinvex\Subscriptions\Models\PlanFeature;
@@ -19,7 +22,7 @@ use Rinvex\Subscriptions\Models\PlanFeature;
class PlanController extends Controller
{
/**
* PlanController constructor.
* @param StripeService $stripe
*/
public function __construct(StripeService $stripe)
{
@@ -29,7 +32,7 @@ class PlanController extends Controller
/**
* Get all plans
*
* @return PlanCollection|\Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
* @return PlanCollection|Application|ResponseFactory|Response
*/
public function index()
{
@@ -49,7 +52,7 @@ class PlanController extends Controller
* Get plan record
*
* @param $id
* @return PlanResource|\Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
* @return PlanResource|Application|ResponseFactory|Response
*/
public function show($id)
{
@@ -69,7 +72,7 @@ class PlanController extends Controller
* Create new plan
*
* @param Request $request
* @return PlanResource|\Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
* @return PlanResource|Application|ResponseFactory|Response
*/
public function store(Request $request)
{
@@ -102,7 +105,7 @@ class PlanController extends Controller
*
* @param Request $request
* @param $id
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
* @return ResponseFactory|Response
*/
public function update(Request $request, $id)
{
@@ -123,7 +126,7 @@ class PlanController extends Controller
* Delete plan
*
* @param $id
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
* @return ResponseFactory|Response
*/
public function delete($id)
{
@@ -148,11 +151,12 @@ class PlanController extends Controller
*/
public function subscribers($id)
{
$subscribers = Subscription::where('stripe_plan', $id)
$subscribers = Subscription::whereStripePlan($id)
->pluck('user_id');
return new UsersCollection(
User::sortable()->findMany($subscribers)
User::sortable()
->findMany($subscribers)
);
}
}
@@ -0,0 +1,185 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Tools\Demo;
use App\Models\Setting;
use Artisan;
use Stripe;
use Cartalyst\Stripe\Exception\UnauthorizedException;
use Illuminate\Http\Request;
use Symfony\Component\HttpKernel\Exception\HttpException;
class SettingController extends Controller
{
/**
* Get table content
*
* @param Request $request
* @return mixed
*/
public function show(Request $request)
{
if (strpos($request->column, '|') !== false) {
$columns = explode('|', $request->column);
return Setting::whereIn('name', $columns)
->pluck('value', 'name');
}
return Setting::where('name', $request->column)
->pluck('value', 'name');
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function update(Request $request)
{
if (env('APP_DEMO')) {
return Demo::response_204();
}
// Store image if exist
if ($request->hasFile($request->name)) {
// Find and update image path
Setting::updateOrCreate([
'name' => $request->name
], [
'value' => store_system_image($request, $request->name)
]);
return response('Done', 204);
}
// Find and update variable
Setting::updateOrCreate(
['name' => $request->name],
['value' => $request->value]
);
return response('Done', 204);
}
/**
* Set new email credentials to .env file
*
* @param Request $request
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/
public function set_email(Request $request)
{
// TODO: pridat validator do requestu
if (env('APP_DEMO')) {
return Demo::response_204();
}
if (!app()->runningUnitTests()) {
setEnvironmentValue([
'MAIL_DRIVER' => $request->driver,
'MAIL_HOST' => $request->host,
'MAIL_PORT' => $request->port,
'MAIL_USERNAME' => $request->username,
'MAIL_PASSWORD' => $request->password,
'MAIL_ENCRYPTION' => $request->encryption,
]);
// Clear config cache
Artisan::call('config:clear');
Artisan::call('config:cache');
}
return response('Done', 204);
}
/**
* Configure stripe additionally
*
* @param Request $request
*/
public function set_stripe(Request $request)
{
// TODO: pridat validator do requestu
// Check payment setup status
if (get_setting('payments_configured')) {
abort(401, 'Gone');
}
// Try to get stripe account details
try {
if (!app()->runningUnitTests()) {
Stripe::make($request->secret, '2020-03-02')
->account()
->details();
}
} catch (UnauthorizedException $e) {
throw new HttpException(401, $e->getMessage());
}
// Get options
collect([
[
'name' => 'stripe_currency',
'value' => $request->currency,
],
[
'name' => 'payments_configured',
'value' => 1,
],
[
'name' => 'payments_active',
'value' => 1,
],
])->each(function ($col) {
Setting::forceCreate([
'name' => $col['name'],
'value' => $col['value'],
]);
});
if (!app()->runningUnitTests()) {
// Set stripe credentials to .env
setEnvironmentValue([
'CASHIER_CURRENCY' => $request->currency,
'STRIPE_KEY' => $request->key,
'STRIPE_SECRET' => $request->secret,
'STRIPE_WEBHOOK_SECRET' => $request->webhookSecret,
]);
// Clear cache
Artisan::call('cache:clear');
Artisan::call('config:clear');
Artisan::call('config:cache');
}
return response('Done', 204);
}
/**
* Clear application cache
*/
public function flush_cache()
{
if (env('APP_DEMO')) {
return Demo::response_204();
}
if (!app()->runningUnitTests()) {
Artisan::call('cache:clear');
Artisan::call('config:clear');
Artisan::call('config:cache');
}
return response('Done', 204);
}
}
+5 -10
View File
@@ -68,9 +68,9 @@ class UserController extends Controller
public function invoices(User $user)
{
return new InvoiceCollection(
$this->stripe->getUserInvoices(
$user
)
$this
->stripe
->getUserInvoices($user)
);
}
@@ -114,7 +114,7 @@ class UserController extends Controller
public function change_role(ChangeRoleRequest $request, User $user)
{
// Demo preview
if (env('APP_DEMO') && $user->id == 1) {
if (env('APP_DEMO') && $user->email === 'howdy@hi5ve.digial') {
return new UserResource($user);
}
@@ -178,11 +178,6 @@ class UserController extends Controller
*/
public function create_user(CreateUserByAdmin $request)
{
// Store avatar
if ($request->hasFile('avatar')) {
$avatar = store_avatar($request, 'avatar');
}
// Create user
$user = User::forceCreate([
'role' => $request->role,
@@ -195,7 +190,7 @@ class UserController extends Controller
->settings()
->create([
'name' => $request->name,
'avatar' => $avatar ?? null,
'avatar' => store_avatar($request, 'avatar'),
'storage_capacity' => $request->storage_capacity,
]);