38 lines
1 KiB
PHP
38 lines
1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Providers;
|
|
|
|
use App\Auth\CrmUserProvider;
|
|
use App\Services\CrmService;
|
|
use Illuminate\Contracts\Cache\Repository;
|
|
use Illuminate\Contracts\Foundation\Application;
|
|
use Illuminate\Contracts\Hashing\Hasher;
|
|
use Illuminate\Support\Facades\App;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\ServiceProvider;
|
|
use LDC\LDCCRM\CrmApiV4;
|
|
|
|
class CrmApiServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* Bootstrap the application services.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function boot()
|
|
{
|
|
App::singleton(CrmService::class, fn (Application $app) => new CrmService(
|
|
$app->make(CrmApiV4::class),
|
|
$app->make(Repository::class),
|
|
));
|
|
|
|
Auth::provider(CrmUserProvider::class, function (Application $app, array $config) {
|
|
$hasher = $app->make(Hasher::class);
|
|
$crmService = $app->make(CrmService::class);
|
|
|
|
return new CrmUserProvider($hasher, $config['model'], $crmService);
|
|
});
|
|
}
|
|
}
|