clrghouz/app/Providers/AppServiceProvider.php
Deon George a46ce7ff9e
All checks were successful
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 42s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 1m55s
Create Docker Image / Final Docker Image Manifest (push) Successful in 11s
Posting messages to matrix
2024-06-11 17:23:59 +10:00

70 lines
1.6 KiB
PHP

<?php
namespace App\Providers;
use Illuminate\Http\Request;
use Illuminate\Notifications\ChannelManager;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\ServiceProvider;
use App\Events\Matrix\Message;
use App\Listeners\EchomailListener;
use App\Listeners\Matrix\MessageListener;
use App\Notifications\Channels\{EchomailChannel,MatrixChannel,NetmailChannel};
use App\Models\{Echomail,Netmail};
use App\Traits\SingleOrFail;
class AppServiceProvider extends ServiceProvider
{
use SingleOrFail;
/**
* Register any application services.
*
* @return void
*/
public function register()
{
Notification::resolved(function (ChannelManager $service) {
$service->extend('echomail', function ($app) {
return new EchomailChannel($app->make(Echomail::class));
});
$service->extend('netmail', function ($app) {
return new NetmailChannel($app->make(Netmail::class));
});
$service->extend('matrix', function ($app) {
return new MatrixChannel($app->make(Echomail::class));
});
});
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
static::bootSingleOrFail();
Auth::viaRequest('matrix-token',function (Request $request) {
return (config('matrix.hs_token') && ($request->bearerToken() === config('matrix.hs_token'))) ? TRUE : NULL;
});
Event::listen(
Message::class,
MessageListener::class,
);
// @todo This should be detected automatically?
Event::listen(
\App\Events\Echomail::class,
EchomailListener::class,
);
}
}