Repo rebuild
This commit is contained in:
@@ -0,0 +1 @@
|
||||
<?php
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Foundation\Inspiring;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
Artisan::command('inspire', function () {
|
||||
$this->comment(Inspiring::quote());
|
||||
})->purpose('Display an inspiring quote');
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Laravel\Jetstream\Http\Controllers\CurrentTeamController;
|
||||
use Laravel\Jetstream\Http\Controllers\Inertia\ApiTokenController;
|
||||
use Laravel\Jetstream\Http\Controllers\Inertia\CurrentUserController;
|
||||
use Laravel\Jetstream\Http\Controllers\Inertia\OtherBrowserSessionsController;
|
||||
use Laravel\Jetstream\Http\Controllers\Inertia\PrivacyPolicyController;
|
||||
use Laravel\Jetstream\Http\Controllers\Inertia\ProfilePhotoController;
|
||||
use Laravel\Jetstream\Http\Controllers\Inertia\TeamController;
|
||||
use Laravel\Jetstream\Http\Controllers\Inertia\TeamMemberController;
|
||||
use Laravel\Jetstream\Http\Controllers\Inertia\TermsOfServiceController;
|
||||
use Laravel\Jetstream\Http\Controllers\Inertia\UserProfileController;
|
||||
use Laravel\Jetstream\Http\Controllers\TeamInvitationController;
|
||||
use Laravel\Jetstream\Jetstream;
|
||||
|
||||
Route::group(['middleware' => config('jetstream.middleware', ['web'])], function () {
|
||||
if (Jetstream::hasTermsAndPrivacyPolicyFeature()) {
|
||||
Route::get('/terms-of-service', [TermsOfServiceController::class, 'show'])->name('terms.show');
|
||||
Route::get('/privacy-policy', [PrivacyPolicyController::class, 'show'])->name('policy.show');
|
||||
}
|
||||
|
||||
$authMiddleware = config('jetstream.guard')
|
||||
? 'auth:' . config('jetstream.guard')
|
||||
: 'auth';
|
||||
|
||||
$authSessionMiddleware = config('jetstream.auth_session', false)
|
||||
? config('jetstream.auth_session')
|
||||
: null;
|
||||
|
||||
Route::group(['middleware' => array_values(array_filter([$authMiddleware, $authSessionMiddleware]))], function () {
|
||||
// User & Profile...
|
||||
Route::get('/user/profile', [UserProfileController::class, 'show'])
|
||||
->name('profile.show');
|
||||
|
||||
Route::delete('/user/other-browser-sessions', [OtherBrowserSessionsController::class, 'destroy'])
|
||||
->name('other-browser-sessions.destroy');
|
||||
|
||||
Route::delete('/user/profile-photo', [ProfilePhotoController::class, 'destroy'])
|
||||
->name('current-user-photo.destroy');
|
||||
|
||||
if (Jetstream::hasAccountDeletionFeatures()) {
|
||||
Route::delete('/user', [CurrentUserController::class, 'destroy'])
|
||||
->name('current-user.destroy');
|
||||
}
|
||||
|
||||
Route::group(['middleware' => 'verified'], function () {
|
||||
// API...
|
||||
if (Jetstream::hasApiFeatures()) {
|
||||
Route::get('/user/api-tokens', [ApiTokenController::class, 'index'])->name('api-tokens.index');
|
||||
Route::post('/user/api-tokens', [ApiTokenController::class, 'store'])->name('api-tokens.store');
|
||||
Route::put('/user/api-tokens/{token}', [ApiTokenController::class, 'update'])->name('api-tokens.update');
|
||||
Route::delete('/user/api-tokens/{token}', [ApiTokenController::class, 'destroy'])->name('api-tokens.destroy');
|
||||
}
|
||||
|
||||
// Teams...
|
||||
if (Jetstream::hasTeamFeatures()) {
|
||||
Route::get('/teams/create', [TeamController::class, 'create'])->name('teams.create');
|
||||
Route::post('/teams', [TeamController::class, 'store'])->name('teams.store');
|
||||
Route::get('/teams/{team}', [TeamController::class, 'show'])->name('teams.show');
|
||||
Route::put('/teams/{team}', [TeamController::class, 'update'])->name('teams.update');
|
||||
Route::delete('/teams/{team}', [TeamController::class, 'destroy'])->name('teams.destroy');
|
||||
Route::put('/current-team', [CurrentTeamController::class, 'update'])->name('current-team.update');
|
||||
Route::post('/teams/{team}/members', [TeamMemberController::class, 'store'])->name('team-members.store');
|
||||
Route::put('/teams/{team}/members/{user}', [TeamMemberController::class, 'update'])->name('team-members.update');
|
||||
Route::delete('/teams/{team}/members/{user}', [TeamMemberController::class, 'destroy'])->name('team-members.destroy');
|
||||
|
||||
Route::get('/team-invitations/{invitation}', [TeamInvitationController::class, 'accept'])
|
||||
->middleware(['signed'])
|
||||
->name('team-invitations.accept');
|
||||
|
||||
Route::delete('/team-invitations/{invitation}', [TeamInvitationController::class, 'destroy'])
|
||||
->name('team-invitations.destroy');
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
use App\Livewire\Settings\Appearance;
|
||||
use App\Livewire\Settings\Profile;
|
||||
use App\Livewire\Settings\Security;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::middleware(['auth'])->group(function () {
|
||||
Route::redirect('settings', 'settings/profile');
|
||||
|
||||
Route::livewire('settings/profile', Profile::class)->name('profile.edit');
|
||||
});
|
||||
|
||||
Route::middleware(['auth', 'verified'])->group(function () {
|
||||
Route::livewire('settings/appearance', Appearance::class)->name('appearance.edit');
|
||||
|
||||
Route::livewire('settings/security', Security::class)
|
||||
->middleware([
|
||||
'password.confirm',
|
||||
])
|
||||
->name('security.edit');
|
||||
});
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Stancl\Tenancy\Middleware\InitializeTenancyByDomain;
|
||||
use Stancl\Tenancy\Middleware\PreventAccessFromCentralDomains;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Tenant Routes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you can register the tenant routes for your application.
|
||||
| These routes are loaded by the TenantRouteServiceProvider.
|
||||
|
|
||||
| Feel free to customize them however you want. Good luck!
|
||||
|
|
||||
*/
|
||||
|
||||
Route::middleware([
|
||||
'web',
|
||||
InitializeTenancyByDomain::class,
|
||||
PreventAccessFromCentralDomains::class,
|
||||
])->group(function () {
|
||||
Route::get('/', function () {
|
||||
return 'This is your multi-tenant application. The id of the current tenant is ' . tenant('id');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Modules\Platform\app\Http\Controllers\PlatformDashboardController;
|
||||
|
||||
Route::get('/', function () {
|
||||
return auth()->check()
|
||||
? redirect()->route('dashboard')
|
||||
: redirect()->route('login');
|
||||
})->name('home');
|
||||
|
||||
Route::get('/dashboard', PlatformDashboardController::class)
|
||||
->middleware(['auth', 'verified', 'company.licensed'])
|
||||
->name('dashboard');
|
||||
|
||||
require __DIR__ . '/settings.php';
|
||||
|
||||
Route::get('/api/countries/resolve/{code}', function (string $code) {
|
||||
$normalised = strtoupper(trim($code));
|
||||
|
||||
$country = DB::table('countries')
|
||||
->whereRaw('UPPER(alpha2) = ?', [$normalised])
|
||||
->orWhereRaw('UPPER(alpha3) = ?', [$normalised])
|
||||
->orWhere('numeric', $normalised)
|
||||
->first();
|
||||
|
||||
abort_if($country === null, 404);
|
||||
|
||||
return response()->json([
|
||||
'data' => [
|
||||
'id' => $country->id ?? null,
|
||||
'name' => $country->name ?? null,
|
||||
'official_name' => $country->official_name ?? null,
|
||||
'common_name' => $country->common_name ?? null,
|
||||
'display_name' => $country->display_name ?? null,
|
||||
'alpha2' => $country->alpha2 ?? null,
|
||||
'alpha3' => $country->alpha3 ?? null,
|
||||
'numeric' => $country->numeric ?? null,
|
||||
'region' => $country->region ?? null,
|
||||
'subregion' => $country->subregion ?? null,
|
||||
'flag_emoji' => $country->flag_emoji ?? null,
|
||||
'is_active' => (bool) ($country->is_active ?? true),
|
||||
],
|
||||
]);
|
||||
})->name('countries.api.resolve.compat');
|
||||
|
||||
Route::get('/api/countries/{code}/subdivisions', function (string $code) {
|
||||
$normalised = strtoupper(trim($code));
|
||||
|
||||
$country = DB::table('countries')
|
||||
->whereRaw('UPPER(alpha2) = ?', [$normalised])
|
||||
->orWhereRaw('UPPER(alpha3) = ?', [$normalised])
|
||||
->orWhere('numeric', $normalised)
|
||||
->first();
|
||||
|
||||
abort_if($country === null, 404);
|
||||
|
||||
$subdivisions = DB::table('country_subdivisions')
|
||||
->where('country_id', $country->id)
|
||||
->orderBy('sort_order')
|
||||
->orderBy('name')
|
||||
->get()
|
||||
->map(fn ($subdivision) => [
|
||||
'id' => $subdivision->id ?? null,
|
||||
'country_id' => $subdivision->country_id ?? null,
|
||||
'code' => $subdivision->code ?? null,
|
||||
'name' => $subdivision->name ?? null,
|
||||
'type' => $subdivision->type ?? null,
|
||||
'parent_code' => $subdivision->parent_code ?? null,
|
||||
'is_active' => (bool) ($subdivision->is_active ?? true),
|
||||
])
|
||||
->values();
|
||||
|
||||
return response()->json(['data' => $subdivisions]);
|
||||
})->name('countries.api.subdivisions.compat');
|
||||
Reference in New Issue
Block a user