mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-09-01 21:00:58 +00:00
* feat(modules): expose host data boundaries * feat(modules): add frontend extension surfaces * refactor(ai): remove assistant from core * chore(ai): prepare the module extraction * fix(modules): load extension styles after the host bundle * chore(modules): lock SDK 3.3.0
164 lines
5.1 KiB
PHP
164 lines
5.1 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| API Routes
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here is where you can register API routes for your application. These
|
|
| routes are loaded by the RouteServiceProvider within a group which
|
|
| is assigned the "api" middleware group. Enjoy building your API!
|
|
|
|
|
*/
|
|
|
|
// ping
|
|
// ----------------------------------
|
|
|
|
Route::get('ping', function () {
|
|
return response()->json([
|
|
'success' => 'invoiceshelf-self-hosted',
|
|
]);
|
|
})->name('ping');
|
|
|
|
// Version 1 endpoints
|
|
// --------------------------------------
|
|
Route::prefix('/v1')->group(function () {
|
|
|
|
// App version
|
|
// ----------------------------------
|
|
|
|
require app_path('Platform/Operations/routes/version.php');
|
|
|
|
// Authentication & Password Reset
|
|
// ----------------------------------
|
|
|
|
require app_path('Domains/Accounts/routes/public.php');
|
|
|
|
// Countries
|
|
// ----------------------------------
|
|
|
|
require app_path('Domains/Contacts/routes/public.php');
|
|
|
|
// Onboarding
|
|
// ----------------------------------
|
|
|
|
Route::middleware(['redirect-if-installed'])->prefix('installation')->group(function () {
|
|
require app_path('Platform/Operations/Installation/routes/api.php');
|
|
});
|
|
|
|
// Super Admin
|
|
// ----------------------------------
|
|
|
|
Route::middleware(['auth:sanctum', 'super-admin'])->prefix('super-admin')->group(function () {
|
|
require app_path('Platform/Operations/routes/admin.php');
|
|
require app_path('Domains/Accounts/routes/admin.php');
|
|
});
|
|
|
|
// Stop impersonation - uses auth:sanctum only (the impersonated user's token, not super-admin)
|
|
Route::middleware(['auth:sanctum'])->prefix('super-admin')->group(function () {
|
|
require app_path('Domains/Accounts/routes/impersonation.php');
|
|
});
|
|
|
|
Route::middleware(['auth:sanctum', 'company'])->group(function () {
|
|
Route::middleware(['bouncer'])->group(function () {
|
|
require app_path('Domains/Accounts/routes/company.php');
|
|
require app_path('Platform/Operations/routes/company.php');
|
|
|
|
// Currencies
|
|
// ----------------------------------
|
|
|
|
require app_path('Domains/Money/routes/company.php');
|
|
|
|
// Reporting and customers
|
|
// ----------------------------------
|
|
|
|
require app_path('Domains/Reporting/routes/company.php');
|
|
require app_path('Domains/Contacts/routes/company.php');
|
|
|
|
// Items
|
|
// ----------------------------------
|
|
|
|
require app_path('Domains/Catalog/routes/company.php');
|
|
|
|
// Sales documents
|
|
// -------------------------------------------------
|
|
|
|
require app_path('Domains/Sales/routes/company.php');
|
|
|
|
// Expenses
|
|
// ----------------------------------
|
|
|
|
require app_path('Domains/Purchases/routes/company.php');
|
|
|
|
// Payments
|
|
// ----------------------------------
|
|
|
|
require app_path('Domains/Receivables/routes/company.php');
|
|
|
|
// Custom fields
|
|
// ----------------------------------
|
|
|
|
require app_path('Domains/Metadata/routes/company.php');
|
|
|
|
// Backup & Disk
|
|
// ----------------------------------
|
|
|
|
require app_path('Platform/Storage/routes/company.php');
|
|
|
|
// PDF rendering and fonts
|
|
// ----------------------------------
|
|
|
|
require app_path('Platform/Pdf/routes/admin.php');
|
|
|
|
require app_path('Platform/Operations/routes/settings.php');
|
|
|
|
// Mails
|
|
// ----------------------------------
|
|
|
|
require app_path('Platform/Mail/routes/company.php');
|
|
|
|
// Tax Types
|
|
// ----------------------------------
|
|
|
|
require app_path('Domains/Taxation/routes/company.php');
|
|
|
|
});
|
|
|
|
// Self Update
|
|
// ----------------------------------
|
|
// Disabled inside the official Docker image — containers upgrade via
|
|
// `docker compose pull`, not the in-app updater (see EnsureNotContainerized).
|
|
|
|
require app_path('Platform/Operations/routes/updater.php');
|
|
|
|
require app_path('Domains/Accounts/routes/management.php');
|
|
|
|
});
|
|
|
|
Route::prefix('/{company:slug}/customer')->group(function () {
|
|
|
|
// Authentication & Password Reset
|
|
// ----------------------------------
|
|
|
|
require app_path('Domains/Contacts/routes/customer-public.php');
|
|
|
|
// Invoices, Estimates, Payments and Expenses endpoints
|
|
// -------------------------------------------------------
|
|
|
|
Route::middleware(['auth:customer', 'customer-portal'])->group(function () {
|
|
require app_path('Domains/Contacts/routes/customer.php');
|
|
|
|
require app_path('Domains/Sales/routes/customer.php');
|
|
|
|
require app_path('Domains/Receivables/routes/customer.php');
|
|
|
|
require app_path('Domains/Purchases/routes/customer.php');
|
|
|
|
});
|
|
});
|
|
});
|
|
|
|
require app_path('Platform/Operations/routes/webhooks.php');
|