feat: action links, telegram webhook and channels API

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BCrwHHnGCB5XH968Nxokqw
This commit is contained in:
nikita.hohlov
2026-09-04 07:52:12 -03:00
parent 6138ac7bb0
commit 90d17ec378
8 changed files with 450 additions and 10 deletions

View File

@@ -14,7 +14,6 @@ use App\Models\User;
use Illuminate\Http\Client\ConnectionException;
use Illuminate\Http\Client\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Route;
use Tests\TestCase;
class WebhookChannelTest extends TestCase
@@ -24,15 +23,6 @@ class WebhookChannelTest extends TestCase
protected function setUp(): void
{
parent::setUp();
Route::post('/a/{token}/ack', fn () => '')->name('action.ack');
Route::post('/a/{token}/done', fn () => '')->name('action.done');
// Laravel only refreshes the named-route lookup table once, right after the app's own
// route files finish loading during boot. Routes added later (e.g. here in setUp) are
// appended to the collection but never indexed by name unless we refresh explicitly,
// so route('action.ack', ...) would otherwise throw RouteNotFoundException. This does
// not affect production: Task 10's real routes live in the route files that already
// get refreshed automatically.
Route::getRoutes()->refreshNameLookups();
}
private function driver(): WebhookChannel