ldc-boutique-cnc-sable/app/Providers/CrmApiServiceProvider.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);
});
}
}