mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-04 05:05:58 +00:00
controller refactoring part 11
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
namespace App\Users\Controllers\Account;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Users\Resources\UserResource;
|
||||
|
||||
class AccountDetailsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Get all user data for frontend
|
||||
*/
|
||||
public function __invoke(): UserResource
|
||||
{
|
||||
return new UserResource(
|
||||
Auth::user()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Users\Controllers\Account;
|
||||
|
||||
|
||||
use App\Users\Resources\UserStorageResource;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class StorageCapacityController
|
||||
{
|
||||
public function __invoke(): UserStorageResource
|
||||
{
|
||||
return new UserStorageResource(
|
||||
Auth::user()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Users\Controllers\Account;
|
||||
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Requests\UpdateUserPasswordRequest;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class UpdatePasswordController extends Controller
|
||||
{
|
||||
public function __invoke(
|
||||
UpdateUserPasswordRequest $request
|
||||
): Response{
|
||||
$user = Auth::user();
|
||||
|
||||
// Check if is demo
|
||||
abort_if(is_demo_account($user->email), 204, 'Changed!');
|
||||
|
||||
// Store new password
|
||||
$user->update([
|
||||
'password' => bcrypt($request->input('password')),
|
||||
]);
|
||||
|
||||
return response('Changed!', 204);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Users\Controllers\Account;
|
||||
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class UpdateProfileSettingsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Update user settings
|
||||
*/
|
||||
public function __invoke(Request $request): Response
|
||||
{
|
||||
// Validate request
|
||||
// TODO: pridat validator do requestu
|
||||
$validator = Validator::make($request->all(), [
|
||||
'avatar' => 'sometimes|file',
|
||||
'name' => 'string',
|
||||
'value' => 'string',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) {
|
||||
abort(400, 'Bad input');
|
||||
}
|
||||
|
||||
// Get user
|
||||
$user = Auth::user();
|
||||
|
||||
// Check if is demo
|
||||
abort_if(is_demo_account($user->email), 204, 'Done.');
|
||||
|
||||
// Update avatar
|
||||
if ($request->hasFile('avatar')) {
|
||||
$user
|
||||
->settings()
|
||||
->update([
|
||||
'avatar' => store_avatar($request, 'avatar'),
|
||||
]);
|
||||
|
||||
return response('Saved!', 204);
|
||||
}
|
||||
|
||||
$user
|
||||
->settings()
|
||||
->update(
|
||||
make_single_input($request)
|
||||
);
|
||||
|
||||
return response('Saved!', 204);
|
||||
}
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
<?php
|
||||
namespace App\Users\Controllers;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Users\Resources\UserResource;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Support\Demo\Actions\DemoService;
|
||||
use Laravel\Sanctum\PersonalAccessToken;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Users\Resources\UserStorageResource;
|
||||
use Domain\Invoices\Resources\InvoiceCollection;
|
||||
use App\Users\Requests\UpdateUserPasswordRequest;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use App\Users\Requests\UserCreateAccessTokenRequest;
|
||||
|
||||
class AccountController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
public DemoService $demo,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all user data to frontend
|
||||
*
|
||||
* @return UserResource
|
||||
*/
|
||||
public function user()
|
||||
{
|
||||
return new UserResource(
|
||||
Auth::user()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get storage details
|
||||
*
|
||||
* @return UserStorageResource
|
||||
*/
|
||||
public function storage()
|
||||
{
|
||||
return new UserStorageResource(
|
||||
Auth::user()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get user invoices
|
||||
*
|
||||
* @return InvoiceCollection
|
||||
*/
|
||||
public function invoices()
|
||||
{
|
||||
return new InvoiceCollection(
|
||||
Auth::user()->invoices()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update user settings relationship
|
||||
*
|
||||
* @param Request $request
|
||||
* @return ResponseFactory|\Illuminate\Http\Response
|
||||
*/
|
||||
public function update_user_settings(Request $request)
|
||||
{
|
||||
// Validate request
|
||||
// TODO: pridat validator do requestu
|
||||
$validator = Validator::make($request->all(), [
|
||||
'avatar' => 'sometimes|file',
|
||||
'name' => 'string',
|
||||
'value' => 'string',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) {
|
||||
abort(400, 'Bad input');
|
||||
}
|
||||
|
||||
// Get user
|
||||
$user = Auth::user();
|
||||
|
||||
// Check if is demo
|
||||
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
|
||||
|
||||
// Update avatar
|
||||
if ($request->hasFile('avatar')) {
|
||||
$user
|
||||
->settings()
|
||||
->update([
|
||||
'avatar' => store_avatar($request, 'avatar'),
|
||||
]);
|
||||
|
||||
return response('Saved!', 204);
|
||||
}
|
||||
|
||||
$user
|
||||
->settings()
|
||||
->update(
|
||||
make_single_input($request)
|
||||
);
|
||||
|
||||
return response('Saved!', 204);
|
||||
}
|
||||
|
||||
/**
|
||||
* Change user password
|
||||
*
|
||||
* @param Request $request
|
||||
* @return ResponseFactory|\Illuminate\Http\Response
|
||||
*/
|
||||
public function change_password(UpdateUserPasswordRequest $request)
|
||||
{
|
||||
// Get user
|
||||
$user = Auth::user();
|
||||
|
||||
// Check if is demo
|
||||
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
|
||||
|
||||
// Change and store new password
|
||||
$user->password = bcrypt($request->input('password'));
|
||||
$user->save();
|
||||
|
||||
return response('Changed!', 204);
|
||||
}
|
||||
|
||||
public function email_verification(string $id, Request $request): RedirectResponse | Response
|
||||
{
|
||||
if (! $request->hasValidSignature()) {
|
||||
return response('Invalid or expired url provided.', 401);
|
||||
}
|
||||
|
||||
$user = User::find($id);
|
||||
|
||||
if (! $user->hasVerifiedEmail()) {
|
||||
$user->markEmailAsVerified();
|
||||
}
|
||||
|
||||
return redirect()->to('/successfully-verified');
|
||||
}
|
||||
|
||||
public function resend_verification_email(Request $request): Response
|
||||
{
|
||||
$user = User::whereEmail($request->input('email'))->first();
|
||||
|
||||
if ($user->hasVerifiedEmail()) {
|
||||
return response('Email was already verified.', 204);
|
||||
}
|
||||
|
||||
$user->sendEmailVerificationNotification();
|
||||
|
||||
return response('Email verification link sent to your email', 204);
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Users\Controllers;
|
||||
namespace App\Users\Controllers\Authentication;
|
||||
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
@@ -11,7 +11,7 @@ use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Str;
|
||||
use Laravel\Sanctum\PersonalAccessToken;
|
||||
|
||||
class AccessTokenController extends Controller
|
||||
class AccountAccessTokenController extends Controller
|
||||
{
|
||||
/**
|
||||
* Get all user tokens
|
||||
+8
-9
@@ -1,22 +1,21 @@
|
||||
<?php
|
||||
namespace App\Users\Controllers;
|
||||
namespace App\Users\Controllers\Authentication;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Requests\CheckAccountRequest;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class AuthController extends Controller
|
||||
class CheckAccountController extends Controller
|
||||
{
|
||||
/**
|
||||
* Check if user account exist
|
||||
*
|
||||
* @param CheckAccountRequest $request
|
||||
* @return mixed
|
||||
*/
|
||||
public function check_account(CheckAccountRequest $request)
|
||||
{
|
||||
// Get User
|
||||
$user = User::whereEmail($request->email)
|
||||
public function __invoke(
|
||||
CheckAccountRequest $request
|
||||
): array|Response {
|
||||
|
||||
$user = User::whereEmail($request->input('email'))
|
||||
->first();
|
||||
|
||||
if (! $user) {
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Users\Controllers\Verification;
|
||||
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class ResendVerificationEmail extends Controller
|
||||
{
|
||||
public function __invoke(
|
||||
Request $request
|
||||
): Response {
|
||||
|
||||
$user = User::where('email', $request->input('email'))
|
||||
->first();
|
||||
|
||||
if ($user->hasVerifiedEmail()) {
|
||||
return response('Email was already verified.', 204);
|
||||
}
|
||||
|
||||
$user->sendEmailVerificationNotification();
|
||||
|
||||
return response('Email verification link sent to your email', 204);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Users\Controllers\Verification;
|
||||
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class VerifyEmailController extends Controller
|
||||
{
|
||||
public function __invoke(
|
||||
string $id,
|
||||
Request $request,
|
||||
): RedirectResponse|Response {
|
||||
|
||||
if (! $request->hasValidSignature()) {
|
||||
return response('Invalid or expired url provided.', 401);
|
||||
}
|
||||
|
||||
$user = User::find($id);
|
||||
|
||||
if (! $user->hasVerifiedEmail()) {
|
||||
$user->markEmailAsVerified();
|
||||
}
|
||||
|
||||
return redirect()->to('/successfully-verified');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Domain\Invoices\Controllers;
|
||||
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Invoices\Resources\InvoiceCollection;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class UserInvoicesController extends Controller
|
||||
{
|
||||
/**
|
||||
* Get user invoices
|
||||
*/
|
||||
public function __invoke(): InvoiceCollection
|
||||
{
|
||||
return new InvoiceCollection(
|
||||
Auth::user()->invoices()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
<?php
|
||||
namespace Domain\Subscriptions\Controllers;
|
||||
|
||||
use Auth;
|
||||
use Stripe\SetupIntent;
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Support\Demo\Actions\DemoService;
|
||||
use App\Users\Resources\UserSubscription;
|
||||
use Domain\Subscriptions\Services\StripeService;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Domain\Subscriptions\Requests\StoreUpgradeAccountRequest;
|
||||
|
||||
class SubscriptionController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
private StripeService $stripe,
|
||||
private DemoService $demo,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get user subscription detail
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function show()
|
||||
{
|
||||
$user = User::find(Auth::id());
|
||||
|
||||
if (! $user->subscription('main')) {
|
||||
return abort(204, 'User don\'t have any subscription');
|
||||
}
|
||||
|
||||
$slug = 'subscription-user-' . $user->id;
|
||||
|
||||
if (Cache::has($slug)) {
|
||||
return Cache::get($slug);
|
||||
}
|
||||
|
||||
return Cache::rememberForever($slug, function () use ($user) {
|
||||
return new UserSubscription(
|
||||
$user
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Domain\Subscriptions\Controllers;
|
||||
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Resources\UserSubscription;
|
||||
use Auth;
|
||||
|
||||
class SubscriptionDetailsController extends Controller
|
||||
{
|
||||
public function __invoke(): mixed
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
||||
if (!$user->subscription('main')) {
|
||||
return abort(204, "User don't have any subscription");
|
||||
}
|
||||
|
||||
$slug = "subscription-user-{$user->id}";
|
||||
|
||||
if (cache()->has($slug)) {
|
||||
return cache()->get($slug);
|
||||
}
|
||||
|
||||
return cache()->rememberForever(
|
||||
$slug, fn() => new UserSubscription($user)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user