mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-27 07:00:29 +01:00
309 lines
10 KiB
PHP
309 lines
10 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Xentral\Modules\Hubspot;
|
||
|
|
||
|
use ApplicationCore;
|
||
|
use Xentral\Components\Database\Database;
|
||
|
use Xentral\Core\DependencyInjection\ContainerInterface;
|
||
|
use Xentral\Modules\Country\Gateway\StateGateway;
|
||
|
use Xentral\Modules\Hubspot\RequestQueues\HubspotRequestQueuesGateway;
|
||
|
use Xentral\Modules\Hubspot\RequestQueues\HubspotRequestQueuesService;
|
||
|
use Xentral\Modules\Hubspot\Scheduler\HubspotProcessSchedulerTask;
|
||
|
use Xentral\Modules\Hubspot\Scheduler\HubspotPullContactsTask;
|
||
|
use Xentral\Modules\Hubspot\Scheduler\HubspotPullDealsTask;
|
||
|
use Xentral\Modules\Hubspot\Scheduler\HubspotPullEngagementsTask;
|
||
|
use Xentral\Modules\Hubspot\Validators\ContactValidator;
|
||
|
use Xentral\Modules\Hubspot\Validators\DealValidator;
|
||
|
use Xentral\Modules\SubscriptionCycle\Scheduler\TaskMutexService;
|
||
|
|
||
|
final class Bootstrap
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function registerServices()
|
||
|
{
|
||
|
return [
|
||
|
'HubspotContactService' => 'onInitHubspotContactService',
|
||
|
'HubspotDealService' => 'onInitHubspotDealService',
|
||
|
'HubspotClientService' => 'onInitHubspotClientService',
|
||
|
'HubspotHttpClientService' => 'onInitHubspotHttpClientService',
|
||
|
'HubspotConfigurationService' => 'onInitHubspotConfigurationService',
|
||
|
'HubspotPullContactsTask' => 'onInitHubspotPullContactsTask',
|
||
|
'HubspotContactGateway' => 'onInitHubspotContactGateway',
|
||
|
'HubspotDealGateway' => 'onInitHubspotDealGateway',
|
||
|
'HubspotContactPropertyService' => 'onInitHubspotContactPropertyService',
|
||
|
'HubspotContactPropertyGateway' => 'onInitHubspotContactPropertyGateway',
|
||
|
'HubspotPullDealsTask' => 'onInitHubspotPullDealsTask',
|
||
|
'HubspotDealPropertyService' => 'onInitHubspotDealPropertyService',
|
||
|
'HubspotProcessSchedulerTask' => 'onInitHubspotProcessSchedulerTask',
|
||
|
'HubspotRequestQueuesGateway' => 'onInitRequestQueuesGateway',
|
||
|
'HubspotRequestQueuesService' => 'onInitRequestQueuesService',
|
||
|
'HubspotEventService' => 'onInitHubspotEventService',
|
||
|
HubspotEngagementService::class => 'onInitHubspotEngagementService',
|
||
|
HubspotPullEngagementsTask::class => 'onInitHubspotPullEngagementsTask',
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotContactService
|
||
|
*/
|
||
|
public static function onInitHubspotContactService(ContainerInterface $container)
|
||
|
{
|
||
|
/** @var ApplicationCore $app */
|
||
|
$app = $container->get('LegacyApplication');
|
||
|
|
||
|
return new HubspotContactService(
|
||
|
$container->get('HubspotClientService'),
|
||
|
new HubspotMetaService($app->erp->GetTMP()),
|
||
|
new ContactValidator(),
|
||
|
$container->get('HubspotConfigurationService')
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotClientService
|
||
|
*/
|
||
|
public static function onInitHubspotClientService(ContainerInterface $container)
|
||
|
{
|
||
|
return new HubspotClientService(
|
||
|
$container->get('HubspotHttpClientService'),
|
||
|
$container->get('HubspotConfigurationService')
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return HubspotHttpClientService
|
||
|
*/
|
||
|
public static function onInitHubspotHttpClientService()
|
||
|
{
|
||
|
return new HubspotHttpClientService(30);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotConfigurationService
|
||
|
*/
|
||
|
public static function onInitHubspotConfigurationService(ContainerInterface $container)
|
||
|
{
|
||
|
/** @var ApplicationCore $app */
|
||
|
$app = $container->get('LegacyApplication');
|
||
|
|
||
|
return new HubspotConfigurationService(
|
||
|
$app->erp,
|
||
|
new HubspotMetaService($app->erp->GetTMP()),
|
||
|
$container->get('HubspotContactPropertyGateway'),
|
||
|
$container->get('HubspotDealGateway'),
|
||
|
$container->get('CountryGateway'),
|
||
|
$container->get(StateGateway::class)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotContactGateway
|
||
|
*/
|
||
|
public static function onInitHubspotContactGateway(ContainerInterface $container)
|
||
|
{
|
||
|
return new HubspotContactGateway($container->get('Database'), $container->get('HubspotConfigurationService'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotPullContactsTask
|
||
|
*/
|
||
|
public static function onInitHubspotPullContactsTask(ContainerInterface $container)
|
||
|
{
|
||
|
/** @var ApplicationCore $app */
|
||
|
$app = $container->get('LegacyApplication');
|
||
|
|
||
|
return new HubspotPullContactsTask(
|
||
|
$container->get('HubspotContactService'),
|
||
|
$container->get('Database'),
|
||
|
new HubspotMetaService($app->erp->GetTMP()),
|
||
|
$container->get('HubspotContactGateway'),
|
||
|
$container->get('HubspotConfigurationService'),
|
||
|
$container->get('HubspotEventService'),
|
||
|
$container->get('CountryGateway'),
|
||
|
new TaskMutexService($container->get('Database'))
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotDealGateway
|
||
|
*/
|
||
|
public static function onInitHubspotDealGateway(ContainerInterface $container)
|
||
|
{
|
||
|
return new HubspotDealGateway($container->get('Database'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotDealService
|
||
|
*/
|
||
|
public static function onInitHubspotDealService(ContainerInterface $container)
|
||
|
{
|
||
|
/** @var ApplicationCore $app */
|
||
|
$app = $container->get('LegacyApplication');
|
||
|
|
||
|
return new HubspotDealService(
|
||
|
$container->get('HubspotClientService'),
|
||
|
new HubspotMetaService($app->erp->GetTMP()),
|
||
|
new DealValidator()
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotContactPropertyService
|
||
|
*/
|
||
|
public static function onInitHubspotContactPropertyService(ContainerInterface $container)
|
||
|
{
|
||
|
return new HubspotContactPropertyService(
|
||
|
$container->get('HubspotClientService'),
|
||
|
$container->get('HubspotContactPropertyGateway'),
|
||
|
$container->get('Database')
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotContactPropertyGateway
|
||
|
*/
|
||
|
public static function onInitHubspotContactPropertyGateway(ContainerInterface $container)
|
||
|
{
|
||
|
return new HubspotContactPropertyGateway($container->get('Database'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotPullDealsTask
|
||
|
*/
|
||
|
public static function onInitHubspotPullDealsTask(ContainerInterface $container)
|
||
|
{
|
||
|
/** @var ApplicationCore $app */
|
||
|
$app = $container->get('LegacyApplication');
|
||
|
|
||
|
return new HubspotPullDealsTask(
|
||
|
$container->get('HubspotDealService'),
|
||
|
$container->get('Database'),
|
||
|
new HubspotMetaService($app->erp->GetTMP()),
|
||
|
$container->get('HubspotDealGateway'),
|
||
|
$container->get('HubspotConfigurationService'),
|
||
|
$container->get('HubspotEventService'),
|
||
|
$container->get('HubspotContactGateway'),
|
||
|
new TaskMutexService($container->get('Database'))
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotDealPropertyService
|
||
|
*/
|
||
|
public function onInitHubspotDealPropertyService(ContainerInterface $container)
|
||
|
{
|
||
|
return new HubspotDealPropertyService(
|
||
|
$container->get('HubspotClientService'),
|
||
|
$container->get('Database'),
|
||
|
$container->get('HubspotContactPropertyGateway')
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotProcessSchedulerTask
|
||
|
*/
|
||
|
public static function onInitHubspotProcessSchedulerTask(ContainerInterface $container)
|
||
|
{
|
||
|
return new HubspotProcessSchedulerTask(
|
||
|
$container->get('HubspotRequestQueuesService'),
|
||
|
new TaskMutexService($container->get('Database'))
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotRequestQueuesGateway
|
||
|
*/
|
||
|
public static function onInitRequestQueuesGateway(ContainerInterface $container)
|
||
|
{
|
||
|
return new HubspotRequestQueuesGateway($container->get('Database'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotRequestQueuesService
|
||
|
*/
|
||
|
public static function onInitRequestQueuesService(ContainerInterface $container)
|
||
|
{
|
||
|
/** @var ApplicationCore $app */
|
||
|
$app = $container->get('LegacyApplication');
|
||
|
|
||
|
return new HubspotRequestQueuesService(
|
||
|
$container->get('HubspotRequestQueuesGateway'),
|
||
|
$container->get('Database'),
|
||
|
$app,
|
||
|
$container->get('HubspotEventService')
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotEventService
|
||
|
*/
|
||
|
public static function onInitHubspotEventService(ContainerInterface $container): HubspotEventService
|
||
|
{
|
||
|
return new HubspotEventService($container->get('Database'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotEngagementService
|
||
|
*/
|
||
|
public static function onInitHubspotEngagementService(ContainerInterface $container): HubspotEngagementService
|
||
|
{
|
||
|
return new HubspotEngagementService($container->get('HubspotClientService'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*
|
||
|
* @return HubspotPullEngagementsTask
|
||
|
*/
|
||
|
public static function onInitHubspotPullEngagementsTask(ContainerInterface $container): HubspotPullEngagementsTask
|
||
|
{
|
||
|
/** @var ApplicationCore $app */
|
||
|
$app = $container->get('LegacyApplication');
|
||
|
|
||
|
return new HubspotPullEngagementsTask(
|
||
|
$container->get('Database'),
|
||
|
$container->get(HubspotEngagementService::class),
|
||
|
new HubspotMetaService($app->erp->GetTMP()),
|
||
|
$container->get('HubspotConfigurationService'),
|
||
|
$container->get('HubspotEventService'),
|
||
|
$container->get('HubspotContactGateway'),
|
||
|
new TaskMutexService($container->get('Database'))
|
||
|
);
|
||
|
}
|
||
|
}
|