403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/foyer/current/routes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/foyer/current/routes/api.php
<?php

use App\Http\Controllers\Api\BookingsController;
use App\Http\Controllers\Api\BusinessesController;
use App\Http\Controllers\Api\ConversationsController;
use App\Http\Controllers\Api\GoogleCalendarPushController;
use App\Http\Controllers\Api\HealthController;
use App\Http\Controllers\Api\NumbersController;
use App\Http\Controllers\Api\OutOfScopeLogController;
use App\Http\Controllers\Api\SmsInboundController;
use App\Http\Controllers\Api\TwilioStatusController;
use App\Http\Controllers\Api\WebInboundController;
use App\Http\Controllers\Api\WebSessionController;
use App\Http\Controllers\Internal\AgentEscalateController;
use App\Http\Controllers\Internal\AgentTurnContextController;
use App\Http\Controllers\Internal\AgentTurnResultController;
use Illuminate\Support\Facades\Route;

// Bare /health alias for the deploy-script post-deploy probe.
Route::get('health', HealthController::class)->name('health');

Route::prefix('v1')->group(function () {
    Route::get('healthz', HealthController::class)->name('v1.healthz');

    // Public webhook endpoints — signature is the auth.
    Route::post('sms/inbound', SmsInboundController::class)
        ->middleware('twilio.sig')
        ->name('v1.sms.inbound');
    Route::post('twilio/status', TwilioStatusController::class)
        ->middleware('twilio.sig')
        ->name('v1.twilio.status');
    Route::post('google/calendar-push', GoogleCalendarPushController::class)
        ->name('v1.google.calendar-push');

    // Web widget — session-token-bound, separate channel.
    Route::post('web/sessions', [WebSessionController::class, 'store'])->name('v1.web.sessions.store');
    Route::post('web/sessions/{session}/verify-phone',
        [WebSessionController::class, 'verifyPhone'])->name('v1.web.sessions.verify-phone');
    Route::post('web/inbound', WebInboundController::class)->name('v1.web.inbound');

    // Owner-authenticated surface.
    Route::middleware('auth:sanctum')->group(function () {
        Route::get('conversations', [ConversationsController::class, 'index'])
            ->name('v1.conversations.index');
        Route::get('conversations/{conversation}', [ConversationsController::class, 'show'])
            ->name('v1.conversations.show');

        Route::get('bookings', [BookingsController::class, 'index'])->name('v1.bookings.index');
        Route::get('bookings/{booking}', [BookingsController::class, 'show'])->name('v1.bookings.show');

        Route::post('bookings/{booking}/confirm', [BookingsController::class, 'confirm'])
            ->middleware('idempotency')
            ->name('v1.bookings.confirm');
        Route::post('bookings/{booking}/reject', [BookingsController::class, 'reject'])
            ->middleware('idempotency')
            ->name('v1.bookings.reject');

        Route::patch('businesses/{business}/scope', [BusinessesController::class, 'updateScope'])
            ->name('v1.businesses.scope');
        Route::post('businesses/{business}/kill-switch', [BusinessesController::class, 'toggleKillSwitch'])
            ->name('v1.businesses.kill-switch');

        Route::get('out-of-scope-log', OutOfScopeLogController::class)->name('v1.out-of-scope-log');

        Route::post('numbers/provision', [NumbersController::class, 'provision'])
            ->name('v1.numbers.provision');
        Route::get('jobs/{job}', [NumbersController::class, 'jobStatus'])->name('v1.jobs.show');
    });
});

// Internal API — FastAPI worker <-> Laravel. Loopback only + HMAC.
Route::prefix('_internal')
    ->middleware(['internal.loopback', 'internal.hmac'])
    ->group(function () {
        Route::get('conversations/{conversation}/turn-context', AgentTurnContextController::class)
            ->name('internal.agent.turn-context');
        Route::post('conversations/{conversation}/turn-result', AgentTurnResultController::class)
            ->name('internal.agent.turn-result');
        Route::post('conversations/{conversation}/escalate', AgentEscalateController::class)
            ->name('internal.agent.escalate');
    });

Youez - 2016 - github.com/yon3zu
LinuXploit