openstackid-resources/app/Services/ModelServicesProvider.php

468 lines
16 KiB
PHP

<?php namespace services;
/**
* Copyright 2015 OpenStack Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
use App\Models\Foundation\Summit\Registration\BuildDefaultPaymentGatewayProfileStrategy;
use App\Models\Foundation\Summit\Registration\IBuildDefaultPaymentGatewayProfileStrategy;
use App\Services\Apis\CalendarSync\ICalendarSyncRemoteFacadeFactory;
use App\Services\Apis\ExternalScheduleFeeds\ExternalScheduleFeedFactory;
use App\Services\Apis\ExternalScheduleFeeds\IExternalScheduleFeedFactory;
use App\Services\Model\AttendeeService;
use App\Services\Model\IAttendeeService;
use App\Services\Model\ICompanyService;
use App\Services\Model\ILocationService;
use App\Services\Model\IMemberService;
use App\Services\Model\Imp\CompanyService;
use App\Services\Model\Imp\PaymentGatewayProfileService;
use App\Services\Model\Imp\RegistrationIngestionService;
use App\Services\Model\Imp\SponsoredProjectService;
use App\Services\Model\Imp\SponsorUserInfoGrantService;
use App\Services\Model\Imp\SummitAdministratorPermissionGroupService;
use App\Services\Model\Imp\SummitDocumentService;
use App\Services\Model\Imp\SummitEmailEventFlowService;
use App\Services\Model\Imp\SummitMediaFileTypeService;
use App\Services\Model\Imp\SummitMediaUploadTypeService;
use App\Services\Model\Imp\SummitMetricService;
use App\Services\Model\Imp\SummitRegistrationInvitationService;
use App\Services\Model\IOrganizationService;
use App\Services\Model\IPaymentGatewayProfileService;
use App\Services\Model\IPresentationCategoryGroupService;
use App\Services\Model\IRegistrationIngestionService;
use App\Services\Model\IRSVPTemplateService;
use App\Services\Model\IScheduleIngestionService;
use App\Services\Model\ISponsoredProjectService;
use App\Services\Model\ISponsorUserInfoGrantService;
use App\Services\Model\ISponsorshipTypeService;
use App\Services\Model\ISummitAccessLevelTypeService;
use App\Services\Model\ISummitAdministratorPermissionGroupService;
use App\Services\Model\ISummitBadgeFeatureTypeService;
use App\Services\Model\ISummitBadgeTypeService;
use App\Services\Model\ISummitDocumentService;
use App\Services\Model\ISummitEmailEventFlowService;
use App\Services\Model\ISummitEventTypeService;
use App\Services\Model\ISummitMediaFileTypeService;
use App\Services\Model\ISummitMediaUploadTypeService;
use App\Services\Model\ISummitMetricService;
use App\Services\Model\ISummitOrderExtraQuestionTypeService;
use App\Services\Model\ISummitPushNotificationService;
use App\Services\Model\ISummitRefundPolicyTypeService;
use App\Services\Model\ISummitRegistrationInvitationService;
use App\Services\Model\ISummitSelectionPlanService;
use App\Services\Model\ISummitTaxTypeService;
use App\Services\Model\ISummitTicketTypeService;
use App\Services\Model\ISummitTrackService;
use App\Services\Model\ISummitTrackTagGroupService;
use App\Services\Model\ITagService;
use App\Services\Model\ITrackQuestionTemplateService;
use App\Services\Model\OrganizationService;
use App\Services\Model\PresentationCategoryGroupService;
use App\Services\Model\ScheduleIngestionService;
use App\Services\Model\SponsorshipTypeService;
use App\Services\Model\SummitAccessLevelTypeService;
use App\Services\Model\SummitBadgeFeatureTypeService;
use App\Services\Model\SummitBadgeTypeService;
use App\Services\Model\SummitLocationService;
use App\Services\Model\MemberService;
use App\Services\Model\RSVPTemplateService;
use App\Services\Model\SummitOrderService;
use App\Services\Model\SummitPromoCodeService;
use App\Services\Model\SummitPushNotificationService;
use App\Services\Model\SummitSelectionPlanService;
use App\Services\Model\SummitTaxTypeService;
use App\Services\Model\SummitTicketTypeService;
use App\Services\Model\SummitTrackService;
use App\Services\Model\SummitTrackTagGroupService;
use App\Services\Model\TagService;
use App\Services\Model\TrackQuestionTemplateService;
use App\Services\SummitEventTypeService;
use App\Services\SummitOrderExtraQuestionTypeService;
use App\Services\SummitRefundPolicyTypeService;
use App\Services\SummitSponsorService;
use Illuminate\Support\Facades\App;
use Illuminate\Support\ServiceProvider;
use services\apis\CalendarSync\CalendarSyncRemoteFacadeFactory;
use services\model\IPresentationService;
use services\model\ISpeakerService;
use services\model\ISummitPromoCodeService;
use services\model\ISummitService;
use services\model\ISummitSponsorService;
use services\model\PresentationService;
use services\model\SpeakerService;
use services\model\SummitService;
use App\Services\Model\ISummitOrderService;
use App\Services\Apis\ExternalRegistrationFeeds\IExternalRegistrationFeedFactory;
use App\Services\Apis\ExternalRegistrationFeeds\ExternalRegistrationFeedFactory;
use services\model\IChatTeamService;
use services\model\ChatTeamService;
use App\Services\Model\Strategies\ICalendarSyncWorkRequestPreProcessorStrategyFactory;
use App\Services\Model\Strategies\CalendarSyncWorkRequestPreProcessorStrategyFactory;
use App\Services\Model\MemberActionsCalendarSyncPreProcessor;
use App\Services\Model\ICalendarSyncWorkRequestQueueManager;
use App\Services\Model\MemberScheduleWorkQueueManager;
use App\Services\Model\AdminActionsCalendarSyncPreProcessor;
use App\Services\Model\AdminScheduleWorkQueueManager;
use App\Services\Model\MemberActionsCalendarSyncProcessingService;
use App\Services\Model\ICalendarSyncWorkRequestPreProcessor;
use App\Services\Model\IMemberActionsCalendarSyncProcessingService;
use App\Services\Model\AdminActionsCalendarSyncProcessingService;
use App\Services\Model\IAdminActionsCalendarSyncProcessingService;
use App\Services\Model\IPresentationVideoMediaUploadProcessor;
use App\Services\Model\Imp\PresentationVideoMediaUploadProcessor;
/***
* Class ModelServicesProvider
* @package services
*/
final class ModelServicesProvider extends ServiceProvider
{
protected $defer = true;
public function boot()
{
}
public function register()
{
App::singleton(ISummitService::class, SummitService::class);
App::singleton(ISpeakerService::class, SpeakerService::class);
App::singleton(IPresentationService::class, PresentationService::class);
App::singleton(IChatTeamService::class, ChatTeamService::class);
App::singleton
(
IAttendeeService::class,
AttendeeService::class
);
App::singleton
(
ICalendarSyncRemoteFacadeFactory::class,
CalendarSyncRemoteFacadeFactory::class
);
// work request pre processors
App::singleton
(
ICalendarSyncWorkRequestPreProcessorStrategyFactory::class,
CalendarSyncWorkRequestPreProcessorStrategyFactory::class
);
App::when(MemberActionsCalendarSyncPreProcessor::class)
->needs(ICalendarSyncWorkRequestQueueManager::class)
->give(MemberScheduleWorkQueueManager::class);
App::when(AdminActionsCalendarSyncPreProcessor::class)
->needs(ICalendarSyncWorkRequestQueueManager::class)
->give(AdminScheduleWorkQueueManager::class);
// work request process services
App::when(MemberActionsCalendarSyncProcessingService::class)
->needs(ICalendarSyncWorkRequestPreProcessor::class)
->give(MemberActionsCalendarSyncPreProcessor::class);
App::singleton
(
IMemberActionsCalendarSyncProcessingService::class,
MemberActionsCalendarSyncProcessingService::class
);
App::when(AdminActionsCalendarSyncProcessingService::class)
->needs(ICalendarSyncWorkRequestPreProcessor::class)
->give(AdminActionsCalendarSyncPreProcessor::class);
App::singleton
(
IAdminActionsCalendarSyncProcessingService::class,
AdminActionsCalendarSyncProcessingService::class
);
App::singleton(
IMemberService::class,
MemberService::class
);
App::singleton
(
ISummitPromoCodeService::class,
SummitPromoCodeService::class
);
App::singleton
(
ISummitEventTypeService::class,
SummitEventTypeService::class
);
App::singleton
(
ISummitTrackService::class,
SummitTrackService::class
);
App::singleton
(
ILocationService::class,
SummitLocationService::class
);
App::singleton
(
IRSVPTemplateService::class,
RSVPTemplateService::class
);
App::singleton
(
ISummitTicketTypeService::class,
SummitTicketTypeService::class
);
App::singleton
(
IPresentationCategoryGroupService::class,
PresentationCategoryGroupService::class
);
App::singleton(
ISummitPushNotificationService::class,
SummitPushNotificationService::class
);
App::singleton(
ISummitSelectionPlanService::class,
SummitSelectionPlanService::class
);
App::singleton(
IOrganizationService::class,
OrganizationService::class
);
App::singleton(
ICompanyService::class,
CompanyService::class
);
App::singleton(
ISummitTrackTagGroupService::class,
SummitTrackTagGroupService::class
);
App::singleton(
ITrackQuestionTemplateService::class,
TrackQuestionTemplateService::class
);
App::singleton(
ITagService::class,
TagService::class
);
App::singleton(
IExternalScheduleFeedFactory::class,
ExternalScheduleFeedFactory::class
);
App::singleton(
IScheduleIngestionService::class,
ScheduleIngestionService::class
);
App::singleton
(
ISummitAccessLevelTypeService::class,
SummitAccessLevelTypeService::class
);
App::singleton
(
ISummitTaxTypeService::class,
SummitTaxTypeService::class
);
App::singleton
(
ISummitBadgeFeatureTypeService::class,
SummitBadgeFeatureTypeService::class
);
App::singleton
(
ISummitBadgeTypeService::class,
SummitBadgeTypeService::class
);
App::singleton(
ISummitSponsorService::class,
SummitSponsorService::class
);
App::singleton(
ISummitRefundPolicyTypeService::class,
SummitRefundPolicyTypeService::class
);
App::singleton(
ISummitOrderExtraQuestionTypeService::class,
SummitOrderExtraQuestionTypeService::class
);
App::singleton(
ISponsorshipTypeService::class,
SponsorshipTypeService::class
);
App::singleton(ISummitOrderService::class, SummitOrderService::class);
App::singleton(ISponsorUserInfoGrantService::class,
SponsorUserInfoGrantService::class);
App::singleton(
IRegistrationIngestionService::class,
RegistrationIngestionService::class
);
App::singleton(
IExternalRegistrationFeedFactory::class,
ExternalRegistrationFeedFactory::class
);
App::singleton(
IPaymentGatewayProfileService::class,
PaymentGatewayProfileService::class
);
App::singleton(
IBuildDefaultPaymentGatewayProfileStrategy::class,
BuildDefaultPaymentGatewayProfileStrategy::class
);
App::singleton(
ISummitEmailEventFlowService::class,
SummitEmailEventFlowService::class
);
App::singleton(
ISummitDocumentService::class,
SummitDocumentService::class
);
App::singleton
(
ISummitRegistrationInvitationService::class,
SummitRegistrationInvitationService::class
);
App::singleton
(
ISummitAdministratorPermissionGroupService::class,
SummitAdministratorPermissionGroupService::class
);
App::singleton
(
ISummitMediaFileTypeService::class,
SummitMediaFileTypeService::class
);
App::singleton
(
ISummitMediaUploadTypeService::class,
SummitMediaUploadTypeService::class
);
App::singleton
(
IPresentationVideoMediaUploadProcessor::class,
PresentationVideoMediaUploadProcessor::class
);
App::singleton
(
ISummitMetricService::class,
SummitMetricService::class
);
App::singleton
(
ISponsoredProjectService::class,
SponsoredProjectService::class
);
}
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return [
ISummitService::class,
ISpeakerService::class,
IPresentationService::class,
IChatTeamService::class,
IAttendeeService::class,
ICalendarSyncRemoteFacadeFactory::class,
ICalendarSyncWorkRequestPreProcessorStrategyFactory::class,
ICalendarSyncWorkRequestQueueManager::class,
ICalendarSyncWorkRequestPreProcessor::class,
IMemberActionsCalendarSyncProcessingService::class,
ICalendarSyncWorkRequestPreProcessor::class,
IAdminActionsCalendarSyncProcessingService::class,
IMemberService::class,
ISummitPromoCodeService::class,
ISummitEventTypeService::class,
ISummitTrackService::class,
ILocationService::class,
IRSVPTemplateService::class,
ISummitTicketTypeService::class,
IPresentationCategoryGroupService::class,
ISummitPushNotificationService::class,
ISummitSelectionPlanService::class,
IOrganizationService::class,
ICompanyService::class,
ISummitTrackTagGroupService::class,
ITrackQuestionTemplateService::class,
ITagService::class,
IExternalScheduleFeedFactory::class,
IScheduleIngestionService::class,
ISummitAccessLevelTypeService::class,
ISummitTaxTypeService::class,
ISummitBadgeFeatureTypeService::class,
ISummitBadgeTypeService::class,
ISummitSponsorService::class,
ISummitRefundPolicyTypeService::class,
ISummitOrderExtraQuestionTypeService::class,
ISponsorshipTypeService::class,
ISummitOrderService::class,
ISponsorBadgeScanService::class,
IRegistrationIngestionService::class,
IExternalRegistrationFeedFactory::class,
IPaymentGatewayProfileService::class,
IBuildDefaultPaymentGatewayProfileStrategy::class,
ISummitEmailEventFlowService::class,
ISummitDocumentService::class,
ISummitRegistrationInvitationService::class,
ISummitAdministratorPermissionGroupService::class,
ISummitMediaFileTypeService::class,
ISummitMediaUploadTypeService::class,
IPresentationVideoMediaUploadProcessor::class,
ISummitMetricService::class,
];
}
}