HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
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)
    {
        //
    }
}