70 lines
1.6 KiB
PHP
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,
|
|
);
|
|
}
|
|
}
|