123 lines
6.1 KiB
PHP
Executable File
123 lines
6.1 KiB
PHP
Executable File
<?php
|
|
|
|
use App\Http\Controllers\AdminController;
|
|
use App\Http\Controllers\AsanPardakhtController;
|
|
use App\Http\Controllers\CafeController;
|
|
use App\Http\Controllers\DigiPayController;
|
|
use App\Http\Controllers\OldApprooController;
|
|
use App\Http\Controllers\PackageNameController;
|
|
use App\Http\Controllers\ProductController;
|
|
use App\Http\Controllers\ReminderController;
|
|
use App\Http\Controllers\TransactionController;
|
|
use App\Http\Controllers\UserController;
|
|
use App\Http\Controllers\WalletController;
|
|
use App\Http\Controllers\ZarinpalController;
|
|
use App\Http\Controllers\PromotionController;
|
|
use App\Models\Transaction;
|
|
use Illuminate\Support\Facades\Route;
|
|
use Laravel\Socialite\Facades\Socialite;
|
|
|
|
|
|
Route::middleware('ban-bot')->group(function () {
|
|
Route::middleware(['abilities:admin', 'auth:sanctum'])->prefix('cafe-configs')->controller(CafeController::class)->group(function () {
|
|
Route::post('', 'store');
|
|
Route::post('{id}', 'update');
|
|
Route::get('', 'index');
|
|
});
|
|
Route::prefix('auth')->controller(UserController::class)->group(function () {
|
|
Route::post('forgot-password', 'requestPasswordReset'); // send reset link
|
|
Route::post('reset-password', 'resetPassword'); // actually reset
|
|
Route::post('reset-password-in-app', 'resetPasswordInApp');
|
|
});
|
|
|
|
Route::get('/reset-password/{token}', [UserController::class, 'showResetForm'])
|
|
->name('password.reset');
|
|
Route::prefix('auth')->controller(UserController::class)->group(function () {
|
|
Route::middleware(['throttle:3,1', 'auto-ban'])->post('login-otp', 'loginOTP');
|
|
Route::post('check-otp', 'checkOTP');
|
|
Route::post('verify-email-code','verifyEmailCode');
|
|
Route::get('verify-email-link/{token}', [UserController::class, 'verifyEmailLink'])->name('verify.email.link');
|
|
Route::post('login', 'login');
|
|
Route::post('register', 'register');
|
|
Route::post('resend-email-verification', [UserController::class, 'resendEmailVerification']);
|
|
Route::post('/login-google', 'googleLogin');
|
|
Route::middleware('auth:sanctum')->group(function () {
|
|
Route::put('logout', 'logout');
|
|
});
|
|
});
|
|
|
|
Route::get('zarinpal/check-transaction', [ZarinpalController::class, 'checkTransaction']);
|
|
Route::post('digipay/check-transaction', [DigiPayController::class, 'checkTransaction']);
|
|
Route::post('asanpardakht/check-transaction', [AsanPardakhtController::class, 'checkTransaction']);
|
|
|
|
Route::get('package-names/{name}/products', [ProductController::class, 'index']);
|
|
Route::middleware('auth:sanctum')->group(function () {
|
|
Route::apiResource('reminders', ReminderController::class);
|
|
});
|
|
Route::middleware('auth:sanctum')->group(function () {
|
|
Route::post('/verify-mobile/request', [UserController::class, 'requestMobileVerification']);
|
|
Route::post('/verify-mobile/confirm', [UserController::class, 'confirmMobileVerification']);
|
|
Route::post('profile', [UserController::class, 'updateProfile']);
|
|
|
|
|
|
|
|
Route::get('status', [UserController::class, 'status']);
|
|
Route::get('paid-status-v1', [OldApprooController::class, 'getUserUnConsumedPurchases']);
|
|
Route::get('transactions', [TransactionController::class, 'index']);
|
|
Route::post('zarinpal/gateway', [TransactionController::class, 'getGateway']);
|
|
|
|
Route::prefix('package-names')->controller(PackageNameController::class)->group(function () {
|
|
Route::get('/', 'index');
|
|
Route::middleware('abilities:admin')->post('/', 'store');
|
|
Route::middleware('abilities:admin')->post('/{name}', 'update');
|
|
|
|
Route::put('/{name}/try', [UserController::class, 'try']);
|
|
|
|
Route::middleware('abilities:admin')->post('/{name}/products', [ProductController::class, 'store']);
|
|
Route::middleware('abilities:admin')->patch('/{name}/products/{id}', [ProductController::class, 'update']);
|
|
Route::middleware('abilities:admin')->delete('/{name}/products/{id}', [ProductController::class, 'delete']);
|
|
Route::put('/{name}/products/{id}/subscribe', [ProductController::class, 'subscribe']);
|
|
});
|
|
|
|
Route::prefix('wallet')->controller(WalletController::class)->group(function () {
|
|
Route::get('/', 'index');
|
|
Route::post('/', 'charge');
|
|
});
|
|
|
|
Route::middleware('abilities:admin')->prefix('admin')->controller(AdminController::class)->group(function () {
|
|
Route::get('/wallet', [WalletController::class, 'getWalletAdmin']);
|
|
Route::post('/wallet', [WalletController::class, 'chargeWalletAdmin']);
|
|
Route::get('/users', 'users');
|
|
Route::post('/users/{mobile}/profile', 'updateUserProfile');
|
|
Route::delete('/users/{mobile}', 'deleteUser');
|
|
Route::get('/users/{mobile}/transactions', 'getUserTransactions');
|
|
Route::get('/users/{mobile}/status', 'getUserStatus');
|
|
Route::get('/users/{mobile}/status-v1', 'getUserStatusV1');
|
|
Route::put('/users/{mobile}/status', 'subscribeUser');
|
|
Route::delete('/users/{mobile}/status', 'unsubscribeUser');
|
|
// Referral free-month rewards (کد معرف)
|
|
Route::get('/referral-rewards', 'pendingReferralRewards');
|
|
Route::post('/referral-rewards/{user}/fulfill', 'fulfillReferralReward');
|
|
});
|
|
});
|
|
///promotions
|
|
Route::get('/promotions', [PromotionController::class, 'index']);
|
|
Route::post('/promotions', [PromotionController::class, 'store']);
|
|
Route::post('/promotions/{promotion}', [PromotionController::class, 'update']);
|
|
Route::delete('/promotions/{promotion}', [PromotionController::class, 'destroy']);
|
|
|
|
Route::get('/asanpardakht/pay', [AsanPardakhtController::class, 'pay']);
|
|
|
|
|
|
Route::middleware('abilities:admin')->prefix('package-names/{package_name}/reminders')
|
|
->middleware('auth:sanctum')
|
|
->controller(ReminderController::class)
|
|
->group(function () {
|
|
Route::get('/', 'packageIndex');
|
|
Route::post('/', 'packageStore');
|
|
Route::put('/{reminder}', 'packageUpdate');
|
|
Route::delete('/{reminder}', 'packageDestroy');
|
|
});
|
|
|
|
});
|