File: /var/www/vaspayment.com/routes/web.php
<?php
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\BlogController;
use App\Http\Controllers\CartController;
use App\Http\Controllers\DataController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\ShopController;
use App\Http\Controllers\CableController;
use App\Http\Controllers\BillerController;
use App\Http\Controllers\ReviewController;
use App\Http\Controllers\AirtimeController;
use App\Http\Controllers\API\KeyController;
use App\Http\Controllers\CommentController;
use App\Http\Controllers\ProductController;
use App\Http\Controllers\SessionController;
use App\Http\Controllers\SettingController;
use App\Http\Controllers\ElectricityController;
use App\Http\Controllers\Billers\MonnifyController;
use App\Http\Controllers\AirtimeToCashRequestController;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\Billers\Data\DatastationController;
use App\Http\Controllers\Billers\Airtime\AirtimeRingoController;
use App\Http\Controllers\Billers\BudPayController;
use App\Http\Controllers\Billers\Electricity\RingoElectricityController;
Route::post('/api/v1/vas/nin-details', function () {
$apiKey = config('app.apiKey');
$secretKey = config('app.secretUrl');
$credentials = "{$apiKey}:{$secretKey}";
$base64Credentials = base64_encode($credentials);
$token = "{$base64Credentials}";
$headers = [
"Authorization" => "Basic $token",
"Accept" => "application/json",
"Content-Type" => "application/json",
];
$response = Http::withHeaders($headers)->post('https://sandbox.monnify.com/api/v1/vas/nin-details', request()->all());
return response()->json($response->json(), $response->status());
});
Route::post('/process', function () {
return view('process');
});
Route::get('/shops', function () {
return view('settings.shop.coming-soon');
});
Route::group(['middleware' => 'check.wallet.balance'], function () {
// RINGO API
Route::post('/product/validat_power', [RingoElectricityController::class, 'validateElectricity'])->name('validate.ringo.power');
Route::post('/purchase-power', [RingoElectricityController::class, 'purchaseElectricity'])->name('buy.ringo.power');
Route::post('/purchase-airtime', [AirtimeRingoController::class, 'purchaseAirtime'])->name('ringo.airtime.purchase');
// Data Station
Route::post('/purchase-data-station', [DatastationController::class, 'purchase'])->name('buy.data.station');
Route::get('/data-station-products', [DatastationController::class, 'dataPlan'])->name('product.data.station');
Route::post('/data-station-store', [DatastationController::class, 'dataPlanStore'])->name('data.station.store');
Route::get('/logg', [SessionController::class, 'logoutUser'])->name('logg');
Route::post('/check-referral', [SessionController::class, 'checkReferral']);
Route::controller(KeyController::class)->group(function () {
Route::get('/verification', 'index')->name('verify.agent');
Route::post('/verification/agent', 'loginAgent')->name('agent.login');
});
Route::controller(AuthController::class)->group(function () {
Route::get('/', 'home')->name('welcome');
Route::get('/login', 'login')->name('login');
Route::get('/register', 'register')->name('register');
Route::get('/privacy-policy', 'privacy')->name('privacy');
Route::get('/terms-condition', 'terms')->name('terms');
Route::get('login/google', 'redirectToGoogle')->name('login.google.alt');
Route::match(['GET', 'POST'], '/google/callback', 'handleGoogleCallback')->name('handleGoogleCallback.alt');
});
Route::controller(AirtimeController::class)->group(function () {
Route::post('/product/airtime', 'buyAirtime')->name('product.buyAirtime');
Route::get('/airtime-commission', 'airtimeList')->name('airtime.commission')->middleware(['auth', 'agent']);
Route::post('/airtime-commission_', 'storeCommission')->name('airtime.commission.store')->middleware(['auth', 'agent']);
Route::put('/airtime-commission-update/{airtimeCommission}', 'updateCommission')->name('airtime.commission.update')->middleware(['auth', 'agent']);
Route::delete('/airtime-commission-delete/{airtimeCommission}', 'deleteCommission')->name('airtime.commission.delete')->middleware(['auth', 'agent']);
});
Route::controller(DataController::class)->group(function () {
Route::post('/dataplan_', 'store')->name('dataplan.store')->middleware(['auth', 'agent']);
Route::get('/getDatalists', 'getDataList')->name('data.list')->middleware(['auth', 'agent']);
Route::post('/product/buy_data', 'buyData')->name('product.buy.data');
Route::post('/products_cat', 'dataStatus')->name('data.status')->middleware(['auth', 'agent']);
});
Route::controller(ElectricityController::class)->group(function () {
Route::get('/product/electricitylist', 'getElectricity')->name('product.list.electricity')->middleware(['auth', 'agent']);
Route::post('/electricity_', 'store')->name('electricity.store')->middleware(['auth', 'agent']);
Route::post('/product/validate_power', 'valida')->name('product.validate.power');
Route::post('/product/buy_electricity', 'buyElectricity')->name('product.buy.electricity');
});
Route::controller(CableController::class)->group(function () {
Route::get('/product/cablepackage', 'getCablePackage')->name('product.cable.package')->middleware(['auth', 'agent']);
Route::post('/cablelist_', 'store')->name('cable.store')->middleware(['auth', 'agent']);
Route::get('/getCablePackage', 'fetchPackage')->name('fetchPackage');
Route::post('/product/validate_cable', 'validat')->name('product.validate.cable');
Route::get('/product/summarize_cable', 'summary')->name('product.summarize.cable');
Route::post('/product/buy_cable', 'buyCable')->name('product.buy.cable');
});
Route::controller(MonnifyController::class)->group(function () {
Route::get('/fund_wallet', 'index')->name('fund.index');
Route::post('/create-virtual-account', 'createVirtual')->name('create.virtual');
Route::post('/fund/process', 'initiate')->name('fund.initiate');
Route::post('/fund/transfer', 'transferWallet')->name('transfer.initiate');
Route::post('/transfer/commission', 'transferCommission')->name('transfer.commission');
Route::get('/transaction-confirm', 'webhook');
Route::get('/customer-funds-history', 'fundHistory')->name('fund.history');
});
Route::controller(BudPayController::class)->group(function () {
Route::post('/create-bud-account', 'createBudPayAccount')->name('budpay.account');
});
Route::controller(AirtimeToCashRequestController::class)->group(function () {
Route::get('/airtime_to_cash_request', 'index')->name('airtimetocash.index')->middleware(['auth', 'agent']);
Route::post('/airtime_to_cash', 'store')->name('airtimetocash.store');
Route::put('/airtime_to_cash_/{airtimeToCashRequest}', 'update')->name('airtimetocash.update');
});
Route::controller(ProductController::class)->group(function () {
Route::get('/product/{product:slug}', 'showProduct')->name('product.show');
});
Route::controller(BillerController::class)->group(function () {
Route::get('/products', 'product')->name('product.index')->middleware(['auth', 'agent']);
Route::post('/products_', 'storeProduct')->name('product.store')->middleware(['auth', 'agent']);
Route::put('/product/{product}', 'updateProduct')->name('product.update')->middleware(['auth', 'agent']);
Route::delete('/products/{product}', 'destroyProduct')->name('product.destroy')->middleware(['auth', 'agent']);
});
Route::controller(HomeController::class)->group(function () {
Route::get('/dashboard', 'index')->name('dashboard');
Route::get('/users', 'user')->name('user.index')->middleware(['auth', 'agent']);
Route::put('/users_/{user}', 'updateUser')->name('user.update')->middleware(['auth', 'agent']);
Route::put('/user_/{wallet}', 'updateWallet')->name('wallet.update')->middleware(['auth', 'agent']);
Route::get('/airtime_transactions', 'airtimeTransaction')->name('transaction.airtime')->middleware(['auth', 'agent']);
Route::get('/data_transactions', 'dataTransaction')->name('transaction.data')->middleware(['auth']);
Route::get('/cable_transactions', 'cableTransaction')->name('transaction.cable')->middleware(['auth', 'agent']);
Route::get('/electricity_transactions', 'electricityTransaction')->name('transaction.electricity')->middleware(['auth', 'agent']);
Route::get('/a2cash_transactions', 'a2cashTransaction')->name('transaction.a2cash')->middleware(['auth', 'agent']);
Route::get('/my_transactions', 'customerTransaction')->name('transaction.customer');
Route::get('/wallet_history', 'walletHistory')->name('wallet.history');
});
Route::controller(SettingController::class)->group(function () {
Route::get('/view_profile', 'view')->name('setting.view')->middleware(['auth']);
Route::get('/business-profile', 'index')->name('setting.business')->middleware(['auth', 'agent']);
Route::post('/business', 'store')->name('business.store')->middleware(['auth', 'agent']);
Route::put('/business_{id}', 'update')->name('business.update')->middleware(['auth', 'agent']);
Route::get('/payment_gateway', 'gateway')->name('setting.payment')->middleware(['auth', 'agent']);
Route::post('/payment_', 'storeGateway')->name('payment.store')->middleware(['auth', 'agent']);
Route::post('/payment_gateway_{gateway}', 'storeGateway')->name('store.gateway')->middleware(['auth', 'agent']);
Route::get('/products-setting', 'productSettings')->name('setting.product')->middleware(['auth', 'agent']);
Route::post('/send-notification_', 'storeNotification')->name('notification')->middleware(['auth', 'agent']);
Route::put('/send-notification/{notify}', 'updateNotification')->name('notification.update')->middleware(['auth', 'agent']);
Route::get('/notifications_', 'listNotification')->name('notification.list')->middleware(['auth', 'agent']);
Route::delete('/notifications/{notify}', 'deleteNotification')->name('notification.destroy')->middleware(['auth', 'agent']);
Route::get('/contact', 'contact')->name('contact');
Route::get('/contact-promo', 'listContact')->name('contact.list')->middleware(['auth', 'agent']);
Route::post('/save-promo-email', 'storeContact')->name('contact.store');
Route::delete('/save-promo-email{newsletter}', 'deleteContact')->name('contact.destroy')->middleware(['auth', 'agent']);
Route::get('/referral-list', 'referral')->name('referral.list')->middleware(['auth', 'agent']);
//
Route::get('/list-billers', 'listBiller')->name('list.biller');
Route::any('/store-billers', 'storeOrUpdate')->name('store.biller');
Route::delete('/delete-billers{biller}', 'destroyBiller')->name('destroy.biller');
});
});
Route::resource('/comment', CommentController::class);
Route::resource('/blog', BlogController::class);
Route::get('/blog/{blog:slug}', [BlogController::class, 'show'])->name('blog.show');
Route::get('/blogs', [BlogController::class, 'list'])->name('blog.list');
Route::get('/blog-comment', [BlogController::class, 'comment'])->name('blog.comment');
Route::get('/blog-category', [BlogController::class, 'category'])->name('blog.category');
Route::post('/category-store', [BlogController::class, 'storeCategory'])->name('category.store');
Route::put('/category-update/{slug}', [BlogController::class, 'updateCategory'])->name('category.update');
Route::delete('/category-destroy/{slug}', [BlogController::class, 'destroyCategory'])->name('category.destroy');
Route::get('/blog-users', [BlogController::class, 'blogUser'])->name('blog.users');
Route::resource('/shop', ShopController::class);
Route::get('/shop/{shop:slug}', [ShopController::class, 'show'])->name('shop.show');
Route::get('/shop-product', [ShopController::class, 'list'])->name('shop.list');
Route::resource('/review', ReviewController::class);
Route::resource('/cart', CartController::class);