File: //var/www/admin.javaapp.co.uk/app/Http/Controllers/Admin/AdminController.php
<?php
namespace App\Http\Controllers\Admin;
use App\Actions\AdminUpdateProfileAction;
use App\Actions\ChangePasswordAction;
use App\Helpers\Aws;
use App\Http\Controllers\Controller;
use App\Http\Requests\ChangePasswordRequest;
use App\Http\Requests\EditAdminProfileRequest;
use App\Models\Admin;
use App\Models\Cafe;
use App\Models\Order;
use App\Models\User;
use App\Services\AdminService;
use App\Services\ChangePasswordService;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AdminController extends Controller
{
private $adminService;
private $changePasswordService;
private $userModel;
public function __construct()
{
$this->adminService = new AdminService(Admin::class);
$this->changePasswordService = new ChangePasswordService(Admin::class);
$this->userModel = new User;
}
public function index()
{
$data['allOrder'] = Order::count();
$data['allRevenue'] = Order::sum('total_amount');
$data['allUser'] = User::where([['is_active', 1], ['is_verified', 1], ['is_deleted', 0]])->count();
$data['allCafe'] = Cafe::where([['is_active', 1], ['approved', 1], ['deleted_at', 0], ['is_admin_approved', 1]])->count();
return view('admin.dashboard', $data);
}
public function myProfile()
{
$data = [];
$data['name'] = Auth::user()->full_name;
$data['email'] = Auth::user()->email;
$data['profile_picture'] = Auth::user()->profile_picture ? Aws::presignedUri(Auth::user()->profile_picture) : '';
$data['address'] = Auth::user()->address;
$data['url'] = route('admin.editProfile');
return view('admin.profile', $data);
}
public function editProfile()
{
$data = [];
$data['name'] = Auth::user()->full_name;
$data['email'] = Auth::user()->email;
$data['profile_picture'] = Auth::user()->profile_picture ? Aws::presignedUri(Auth::user()->profile_picture) : '';
$data['address'] = Auth::user()->address;
$data['url'] = route('admin.updateProfile');
$data['cancelUrl'] = route('admin.myProfile');
return view('admin.edit-profile', $data);
}
public function updateProfile(EditAdminProfileRequest $request, AdminUpdateProfileAction $adminUpdateProfileAction)
{
return $adminUpdateProfileAction->handle(Admin::class, $request);
// return $this->adminService->updateProfile($request);
}
public function changePasswordForm()
{
$url = route('admin.changePassword');
return view('change-password', compact('url'));
}
public function changePassword(ChangePasswordRequest $request, ChangePasswordAction $changePasswordAction)
{
return $changePasswordAction->handle(Admin::class, $request);
// return $this->changePasswordService->changePassword($request);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}