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');
}
}