mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-26 02:20:39 +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');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user