GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: /var/www/vaspayment.com/app/Http/Controllers/AirtimeToCashRequestController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\AirtimeToCashRequest;
use App\Models\Product;
use App\Notifications\AirtimeToCash;
use Illuminate\Support\Facades\Notification;

class AirtimeToCashRequestController extends Controller
{
    public function __construct()
    {
        if (config('app.verification') === true) {
            $this->middleware(['auth', 'verified']);
        } else {
            $this->middleware(['auth']);
        }
    }

    public function index(Product $product)
    {
        $airtimetocash = AirtimeToCashRequest::latest()->paginate(20);
        return view('dashboard.agent.products.airtime.list', compact('airtimetocash', 'product'));
    }
    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'amount' => 'required|string',
            'phone' => 'required|numeric',
            'network' => 'required|string',
            'accountNo' => 'required|numeric',
            'bankName' => 'required|string',
            'receiverName' => 'required|string',
            'user_id' => 'required|string',
        ]);
        try {
            $airtimeToCashRequest = AirtimeToCashRequest::create($validatedData);
            $appMail = config('app.mail');
            Notification::route('mail', [
                $appMail => 'Web App Notification: New Airtime to Cash Request',
            ])->notify(new AirtimeToCash($airtimeToCashRequest));
            
            return redirect()->back()->with('status', 'Airtime to cash request sent to Admin successfully');
        } catch (\Throwable $th) {
            return redirect()->back()->with('error', $th);
        }
    }

    public function update(Request $request, AirtimeToCashRequest $airtimeToCashRequest)
    {
        if (auth()->user()->role == 'agent') {
            $validatedData = $request->validate([
                'calculatedAmount' => 'required|string',
                'status' => 'required|string',
            ]);
            try {
                $airtimeToCashRequest->calculatedAmount = $request->get('calculatedAmount');
                $airtimeToCashRequest->status = '1';
                $airtimeToCashRequest->save();
                return redirect()->back()->with('status', 'Airtime to cash request Updated');
            } catch (\Exception $e) {
                return redirect()->back()->with('error', 'Error updating airtime to cash request: ' . $e->getMessage());
            }
        }
    }

    public function destroy(AirtimeToCashRequest $airtimeToCashRequest)
    {
        $airtimeToCashRequest->delete();
        return redirect()->back()->with('status','Deleted Successfully');
    }
}