first commit
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
<?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\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::middleware(['throttle:3,1', 'auto-ban'])->post('login-otp', 'loginOTP');
|
||||
Route::post('check-otp', 'checkOTP');
|
||||
Route::post('verify-email-code','verifyEmailCode');
|
||||
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::post('profile', [UserController::class, 'updateProfile']);
|
||||
|
||||
Route::middleware('auth:sanctum')->group(function () {
|
||||
Route::apiResource('reminders', ReminderController::class);
|
||||
});
|
||||
|
||||
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');
|
||||
});
|
||||
});
|
||||
|
||||
Route::get('/asanpardakht/pay', [AsanPardakhtController::class, 'pay']);
|
||||
});
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Broadcast;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Broadcast Channels
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may register all of the event broadcasting channels that your
|
||||
| application supports. The given channel authorization callbacks are
|
||||
| used to check if an authenticated user can listen to the channel.
|
||||
|
|
||||
*/
|
||||
|
||||
Broadcast::channel('App.Models.User.{id}', function ($user, $id) {
|
||||
return (int) $user->id === (int) $id;
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Foundation\Inspiring;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Console Routes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This file is where you may define all of your Closure based console
|
||||
| commands. Each Closure is bound to a command instance allowing a
|
||||
| simple approach to interacting with each command's IO methods.
|
||||
|
|
||||
*/
|
||||
|
||||
Artisan::command('inspire', function () {
|
||||
$this->comment(Inspiring::quote());
|
||||
})->purpose('Display an inspiring quote');
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use Illuminate\Support\Str;
|
||||
use Laravel\Socialite\Facades\Socialite;
|
||||
|
||||
Route::get('/auth/redirect', function () {
|
||||
$targetUrl = request()->query('target_url', url('/'));
|
||||
|
||||
Session::put('target_url', $targetUrl);
|
||||
|
||||
return Socialite::driver('google')->redirect();
|
||||
});
|
||||
|
||||
Route::get('/auth/callback', function () {
|
||||
$googleUser = Socialite::driver('google')->user();
|
||||
|
||||
$token = $googleUser->token;
|
||||
|
||||
$targetUrl = Session::pull('target_url', url('/'));
|
||||
|
||||
$separator = parse_url($targetUrl, PHP_URL_QUERY) ? '&' : '?';
|
||||
$redirectUrl = $targetUrl . $separator . 'access_token=' . urlencode($token);
|
||||
|
||||
return redirect()->to($redirectUrl);
|
||||
});
|
||||
Reference in New Issue
Block a user