-
-
Notifications
You must be signed in to change notification settings - Fork 142
-
Hi, I have a suggestion for this great package. It would be great if a router could be added.
I will give some examples:
TelegraphRouter::command('start', [\App\Telegraph\Controllers\BotMenuController::class, 'start']); TelegraphRouter::callback('cancel', function (\DefStudio\Telegraph\Models\TelegraphChat $chat, \DefStudio\Telegraph\DTO\CallbackQuery $callbackQuery, \Illuminate\Support\Collection $data) { // do something }); TelegraphRouter::message('❌ Cancel', \App\Telegraph\Controllers\BotMenuController::class)->middleware(\App\Telegraph\Middleware\CheckCancel::class);
A router is similar to the Laravel router, which can be used for commands, callback queries, and messages. action it can be called by closure, an invokable controller, or as an array whose first index is the controller and the second index is the method. It can also have middleware like Laravel for more flexibility.
A file called telegraph.php can be created in the routes folder to define the routes there.
If it's implementing these things, it will be great and this package will be more useful.
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 1
Replies: 3 comments 2 replies
-
Hi!
like this idea, will further explore it in v2 which we'll start developing in the next months
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 1
-
Hi.
Is there an approximate release time for version 2 with routing functionality?
Beta Was this translation helpful? Give feedback.
All reactions
-
@fabio-ivona Hi. Any news about the next version?
Beta Was this translation helpful? Give feedback.
All reactions
-
Hi, we are fixing the payment feature and will be out with v2 a couple of months after, no need for now
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 1
-
hi! what about routing for several handlers?
i do this updates, migration:
if (!Schema::hasColumn('telegraph_bots', 'handler_class_name')) {
Schema::table('telegraph_bots', function (Blueprint $table) {
$table->string('handler_class_name')->nullable()->after('name');
});
}
config:
'handler' => \App\Http\Telegram\RouteWebhookHandler::class,
handler:
class RouteWebhookHandler extends WebhookHandler
{
public function handle(Request $request, TelegraphBot $bot): void
{
if (empty($bot->handler_class_name))
return;
$handlerClassName = '\App\Http\Telegram\\'.$bot->handler_class_name;
if (!class_exists($handlerClassName))
return;
/** @var WebhookHandler $handler */
$handler = app($handlerClassName);
$handler->handle($request, $bot);
}
}
Beta Was this translation helpful? Give feedback.