remove api prefix from routes (#280)
* remove api prefix from routes * PR changes --------- Co-authored-by: Julien Nahum <julien@nahum.net>
This commit is contained in:
parent
be43c5cae3
commit
57ce0e6114
|
@ -1,18 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use App\Service\SeoMetaResolver;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
class SpaController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Get the SPA view.
|
|
||||||
*/
|
|
||||||
public function __invoke(Request $request)
|
|
||||||
{
|
|
||||||
return view('spa',[
|
|
||||||
'meta' => (new SeoMetaResolver($request))->getMetas(),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -40,18 +40,13 @@ class RouteServiceProvider extends ServiceProvider
|
||||||
|
|
||||||
$this->routes(function () {
|
$this->routes(function () {
|
||||||
|
|
||||||
Route::prefix('api')
|
Route::middleware('api')
|
||||||
->middleware('api')
|
|
||||||
->namespace($this->namespace)
|
->namespace($this->namespace)
|
||||||
->group(base_path('routes/api.php'));
|
->group(base_path('routes/api.php'));
|
||||||
|
|
||||||
Route::middleware('web')
|
Route::middleware('web')
|
||||||
->namespace($this->namespace)
|
->namespace($this->namespace)
|
||||||
->group(base_path('routes/web.php'));
|
->group(base_path('routes/web.php'));
|
||||||
|
|
||||||
Route::middleware('spa')
|
|
||||||
->namespace($this->namespace)
|
|
||||||
->group(base_path('routes/spa.php'));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,8 @@ export default {
|
||||||
setup () {
|
setup () {
|
||||||
const workingFormStore = useWorkingFormStore()
|
const workingFormStore = useWorkingFormStore()
|
||||||
return {
|
return {
|
||||||
workingFormStore
|
workingFormStore,
|
||||||
|
runtimeConfig: useRuntimeConfig()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -134,7 +135,7 @@ export default {
|
||||||
if (!this.form) {
|
if (!this.form) {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
return '/api/open/forms/' + this.form.id + '/submissions/export'
|
return this.runtimeConfig.public.apiBase + '/open/forms/' + this.form.id + '/submissions/export'
|
||||||
},
|
},
|
||||||
filteredData () {
|
filteredData () {
|
||||||
if (!this.tableData) return []
|
if (!this.tableData) return []
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
}),
|
}),
|
||||||
methods: {
|
methods: {
|
||||||
async send () {
|
async send () {
|
||||||
const { data } = await this.form.post('/api/password/email')
|
const { data } = await this.form.post('/password/email')
|
||||||
this.isMailSent = true
|
this.isMailSent = true
|
||||||
},
|
},
|
||||||
close () {
|
close () {
|
||||||
|
|
|
@ -120,7 +120,7 @@ export default {
|
||||||
if (this.loading) return
|
if (this.loading) return
|
||||||
|
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.aiForm.post('/api/forms/ai/generate').then(response => {
|
this.aiForm.post('/forms/ai/generate').then(response => {
|
||||||
this.useAlert.success(response.data.message)
|
this.useAlert.success(response.data.message)
|
||||||
this.fetchGeneratedForm(response.data.ai_form_completion_id)
|
this.fetchGeneratedForm(response.data.ai_form_completion_id)
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
|
|
@ -95,7 +95,7 @@ export default {
|
||||||
}),
|
}),
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
formEndpoint: () => '/api/open/forms/{id}',
|
formEndpoint: () => '/open/forms/{id}',
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -42,7 +42,7 @@ export default {
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
async send () {
|
async send () {
|
||||||
const { data } = await this.form.post('/api/password/email')
|
const { data } = await this.form.post('/password/email')
|
||||||
|
|
||||||
this.status = data.status
|
this.status = data.status
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ export default {
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
async reset () {
|
async reset () {
|
||||||
const { data } = await this.form.post('/api/password/reset')
|
const { data } = await this.form.post('/password/reset')
|
||||||
|
|
||||||
this.status = data.status
|
this.status = data.status
|
||||||
|
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
Tools
|
Tools
|
||||||
</h3>
|
</h3>
|
||||||
<div class="flex flex-wrap mb-5">
|
<div class="flex flex-wrap mb-5">
|
||||||
<a href="/stats">
|
<a :href="statsUrl" target="_blank">
|
||||||
<v-button class="mx-1" color="gray" shade="lighter">
|
<v-button class="mx-1" color="gray" shade="lighter">
|
||||||
Stats
|
Stats
|
||||||
</v-button>
|
</v-button>
|
||||||
</a>
|
</a>
|
||||||
<a href="/horizon">
|
<a :href="horizonUrl" target="_blank">
|
||||||
<v-button class="mx-1" color="gray" shade="lighter">
|
<v-button class="mx-1" color="gray" shade="lighter">
|
||||||
Horizon
|
Horizon
|
||||||
</v-button>
|
</v-button>
|
||||||
|
@ -53,6 +53,10 @@ let form = useForm({
|
||||||
})
|
})
|
||||||
let loading = false
|
let loading = false
|
||||||
|
|
||||||
|
const runtimeConfig = useRuntimeConfig()
|
||||||
|
const statsUrl = runtimeConfig.public.apiBase + '/stats'
|
||||||
|
const horizonUrl = runtimeConfig.public.apiBase + '/horizon'
|
||||||
|
|
||||||
const impersonate = () => {
|
const impersonate = () => {
|
||||||
loading = true
|
loading = true
|
||||||
authStore.startImpersonating()
|
authStore.startImpersonating()
|
||||||
|
|
|
@ -15,7 +15,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'paths' => ['api/*'],
|
'paths' => ['*'],
|
||||||
|
|
||||||
'allowed_methods' => ['*'],
|
'allowed_methods' => ['*'],
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,9 @@ use App\Http\Controllers\Forms\RecordController;
|
||||||
use App\Http\Controllers\WorkspaceController;
|
use App\Http\Controllers\WorkspaceController;
|
||||||
use App\Http\Controllers\TemplateController;
|
use App\Http\Controllers\TemplateController;
|
||||||
use App\Http\Controllers\Forms\Integration\FormZapierWebhookController;
|
use App\Http\Controllers\Forms\Integration\FormZapierWebhookController;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\Response;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -177,3 +180,31 @@ Route::prefix('templates')->group(function () {
|
||||||
Route::put('/{id}', [TemplateController::class, 'update'])->name('templates.update');
|
Route::put('/{id}', [TemplateController::class, 'update'])->name('templates.update');
|
||||||
Route::delete('/{id}', [TemplateController::class, 'destroy'])->name('templates.destroy');
|
Route::delete('/{id}', [TemplateController::class, 'destroy'])->name('templates.destroy');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Route::post(
|
||||||
|
'/stripe/webhook',
|
||||||
|
[\App\Http\Controllers\Webhook\StripeController::class, 'handleWebhook']
|
||||||
|
)->name('cashier.webhook');
|
||||||
|
|
||||||
|
Route::post(
|
||||||
|
'/vapor/signed-storage-url',
|
||||||
|
[\App\Http\Controllers\Content\SignedStorageUrlController::class, 'store']
|
||||||
|
)->middleware([]);
|
||||||
|
Route::post(
|
||||||
|
'/upload-file',
|
||||||
|
[\App\Http\Controllers\Content\FileUploadController::class, 'upload']
|
||||||
|
)->middleware([]);
|
||||||
|
|
||||||
|
Route::get('local/temp/{path}', function (Request $request, string $path){
|
||||||
|
if (!$request->hasValidSignature()) {
|
||||||
|
abort(401);
|
||||||
|
}
|
||||||
|
$response = Response::make(Storage::get($path), 200);
|
||||||
|
$response->header("Content-Type", Storage::mimeType($path));
|
||||||
|
return $response;
|
||||||
|
})->where('path', '(.*)')->name('local.temp');
|
||||||
|
|
||||||
|
Route::get('caddy/ask-certificate/{secret?}', [\App\Http\Controllers\CaddyController::class, 'ask'])
|
||||||
|
->name('caddy.ask')->middleware(\App\Http\Middleware\CaddyRequestMiddleware::class);
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
use App\Http\Controllers\SpaController;
|
|
||||||
use Illuminate\Support\Facades\Route;
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| SPA Routes
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| Here is where you can register SPA routes for your frontend. These
|
|
||||||
| routes are loaded by the RouteServiceProvider within a group which
|
|
||||||
| is assigned the "spa" middleware group.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
Route::get('{path}', SpaController::class)->where('path', '^(?!(api|stats|mailcoach|vapor|sitemap|caddy|dist)).*$');
|
|
|
@ -1,8 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use Illuminate\Support\Facades\Storage;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
@ -14,29 +12,3 @@ use Illuminate\Http\Request;
|
||||||
| contains the "web" middleware group. Now create something great!
|
| contains the "web" middleware group. Now create something great!
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Route::post(
|
|
||||||
'/stripe/webhook',
|
|
||||||
[\App\Http\Controllers\Webhook\StripeController::class, 'handleWebhook']
|
|
||||||
)->name('cashier.webhook');
|
|
||||||
|
|
||||||
Route::post(
|
|
||||||
'/vapor/signed-storage-url',
|
|
||||||
[\App\Http\Controllers\Content\SignedStorageUrlController::class, 'store']
|
|
||||||
)->middleware([]);
|
|
||||||
Route::post(
|
|
||||||
'/upload-file',
|
|
||||||
[\App\Http\Controllers\Content\FileUploadController::class, 'upload']
|
|
||||||
)->middleware([]);
|
|
||||||
|
|
||||||
Route::get('local/temp/{path}', function (Request $request, string $path){
|
|
||||||
if (!$request->hasValidSignature()) {
|
|
||||||
abort(401);
|
|
||||||
}
|
|
||||||
$response = Response::make(Storage::get($path), 200);
|
|
||||||
$response->header("Content-Type", Storage::mimeType($path));
|
|
||||||
return $response;
|
|
||||||
})->where('path', '(.*)')->name('local.temp');
|
|
||||||
|
|
||||||
Route::get('caddy/ask-certificate/{secret?}', [\App\Http\Controllers\CaddyController::class, 'ask'])
|
|
||||||
->name('caddy.ask')->middleware(\App\Http\Middleware\CaddyRequestMiddleware::class);
|
|
||||||
|
|
Loading…
Reference in New Issue