Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/langganan.fixmate.id/routes/
Upload File :
Current File : /home/aplikasiposinfo/public_html/langganan.fixmate.id/routes/web.php

<?php

use App\Helpers\Helper;
use App\Http\Controllers\AffiliateController;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\DetailPaketController;
use App\Http\Controllers\FormLanggananController;
use App\Http\Controllers\ItemPaketController;
use App\Http\Controllers\LanggananController;
use App\Http\Controllers\PaketController;
use App\Http\Controllers\PembayaranAffiliateController;
use App\Http\Controllers\PengaturanAplikasiController;
use App\Http\Controllers\ProdukController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\TutorialController;
use App\Http\Controllers\UserController;
use App\Models\Langganan;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Route;
use Carbon\Carbon;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Log;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

Route::get('/migrate', function () {
    return Artisan::call('migrate');
});

Route::get('/seed', function () {
    return Artisan::call('db:seed');
});

Route::get('/optimize', function () {
    return Artisan::call('optimize:clear');
});


Route::get('/test-root-db', function () {
    try {
        $connection = DB::connection('mysql_admin');
        $databases = $connection->select('SHOW DATABASES');

        $databaseNames = array_map(function ($db) {
            return $db->Database;
        }, $databases);

        return response()->json($databaseNames);
    } catch (\Throwable $th) {
        return response()->json([
            'error' => 'Failed to connect to the database: ' . $th->getMessage()
        ])->setStatusCode(500);
    }
});

Route::get('/create-subdomain', function () {
    $domain = request()->input('domain');
    $tgl_selesai = request()->input('tgl_selesai');

    $result = Helper::createDomain($domain,$tgl_selesai);

    return response()->json([
        'message' => 'Subdomain created successfully',
        'result' => $result,
    ]);
});

Route::get('/list-subdomain', function () {
    $dir = env('DOMAIN_LIST_DIR', base_path('subdomains'));

    //get fetch all subdomain directories from $dir and filter if directory contains *.fixmate.id
    $subdomains = [];
    if (is_dir($dir)) {
        $directories = scandir($dir);
        foreach ($directories as $directory) {
            if ($directory !== '.' && $directory !== '..') {
                $subdomainPath = $dir . '/' . $directory;
                if (is_dir($subdomainPath) && preg_match('/^[a-z0-9-]+\.fixmate\.id$/', $directory)) {
                    //read .env file in subdomain directory
                    $envPath = $subdomainPath . '/.env';
                    if (file_exists($envPath)) {
                        $envContent = file_get_contents($envPath);
                        $envLines = explode("\n", $envContent);
                        $envData = [];
                        //get APP_NAME and APP_URL from .env file
                        foreach ($envLines as $line) {
                            if (strpos($line, 'APP_NAME=') === 0) {
                                $envData['APP_NAME'] = trim(substr($line, strlen('APP_NAME=')));
                            } elseif (strpos($line, 'APP_URL=') === 0) {
                                $envData['APP_URL'] = trim(substr($line, strlen('APP_URL=')));
                            }
                        }
                        if (isset($envData['APP_NAME']) && isset($envData['APP_URL'])) {
                            $subdomains[] = [
                                'name' => $envData['APP_NAME'],
                                'url' => $envData['APP_URL'],
                                'directory' => $directory,
                            ];
                        }
                    } else {
                        // If .env file does not exist, use the directory name as APP_NAME and assume a default APP_URL
                        $subdomains[] = [
                            'name' => $directory,
                            'url' => 'https://' . $directory . '.fixmate.id',
                            'directory' => $directory,
                        ];
                    }
                }
            }
        }
    }

    return response()->json(array_values($subdomains));
});

Route::get('/test-email', function () {
    try {
        Mail::raw('Ini adalah isi email percobaan.', function ($message) {
            $message->to(request()->email)
                ->subject('Email Percobaan dari Laravel');
        });

        return 'Email berhasil dikirim!';
    } catch (\Exception $e) {
        return 'Gagal mengirim email: ' . $e->getMessage();
    }
});

// outside route
Route::get('/', function () {
    return view('Auth.login');
});
Route::resource('formLangganan', FormLanggananController::class);
Route::get('/formLangganan/getAffiliate/{code}', [FormLanggananController::class, 'getAffiliate'])->name('formLangganan.getAffiliate');


//reset password
Route::middleware(['guest'])->group(function () {
    Route::get('/forgot-password', [\App\Http\Controllers\ForgotPasswordController::class, 'index'])->name('forgot.password');
    Route::post('/forgot-password', [\App\Http\Controllers\ForgotPasswordController::class, 'forgotPassword'])->name('forgot.password.action');
    Route::get('/reset-password/{token}', [\App\Http\Controllers\ForgotPasswordController::class, 'forgetPasswordForm'])->name('password.reset');
    Route::post('/reset-password', [\App\Http\Controllers\ForgotPasswordController::class, 'forgetPasswordReset'])->name('reset.password.action');
});


// error route
Route::get('/error/500', function () {
    return view('Component.error500');
})->name('error.500');

// auth controller
Route::controller(AuthController::class)->group(function () {
    Route::get('/login/page', 'login')->name('login.page');
    Route::get('/registrasi/page', 'registrasiPage')->name('registrasi.page');
    Route::post('/registrasiAction', 'registrasi')->name('registrasi.action');
    Route::post('/loginAction', 'loginAction')->name('login.action');
    Route::post('/logout', 'logout')->name('logout');
});
// Auth route
Route::middleware(['auth'])->group(function () {

    Route::get('/check-created-domain', [LanggananController::class, 'statusDomain'])->name('check.created.domain');

    // all role access
    // dashboard
    Route::get('/dashboard', [DashboardController::class, 'dashboard'])->name('dashboard');
    Route::get('/paket/Kelas/pilih', [LanggananController::class, 'indexFrontClass'])->name('paket.pilih.kelas');
    Route::get('/paket/Aplikasi/pilih', [LanggananController::class, 'indexFrontApp'])->name('paket.pilih.aplikasi');
    Route::post('user/langganan', [LanggananController::class, 'userLangganan'])->name('user.langganan');


    // role:user access
    // profile user
    Route::resource('affiliate', AffiliateController::class);
    Route::resource('profile', ProfileController::class);

    // generate nota
    Route::get('/langananan/nota-pdf/{id}', [LanggananController::class, 'generateNota']);

    Route::resource('pembayaran-affiliate', PembayaranAffiliateController::class);



    // role:admin and operator access
    Route::middleware(['role:admin,operator'])->group(function () {
        // usercontroll
        Route::resource('pengguna', UserController::class);
        Route::get('/getUser', [UserController::class, 'getUser']);
        Route::resource('/itemPaket', ItemPaketController::class);
        Route::resource("tutorial", TutorialController::class);

        Route::resource('/produk', ProdukController::class);
        Route::get('/getProduk', [ProdukController::class, 'getProduk']);

        Route::resource('/paket', PaketController::class);
        Route::get('/getPaket', [PaketController::class, 'getPaket']);
        Route::get('/getTotal/{id}', [PaketController::class, 'getTotal']);
        Route::get('/paket/detail/{id}', [PaketController::class, 'detailPaket'])->name('detailPaket');

        Route::resource('/itemPaket', ItemPaketController::class);
        Route::get('/getItemPaket', [ItemPaketController::class, 'getItemPaket']);

        Route::resource('/langganan', LanggananController::class);
        Route::get('/getLangganan', [LanggananController::class, 'getLangganan']);
        Route::post('langganan/aktifasi/{id}', [LanggananController::class, 'aktifasi'])->name('langganan.aktifasi');

        Route::resource('/detailPaket', DetailPaketController::class);
        Route::get('/getDetailPaket/{id}', [DetailPaketController::class, 'getDetail']);

        Route::resource('/pengaturanAplikasi', PengaturanAplikasiController::class);
    });
});

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]