
POST /api/v1/summits/{id}/selection-plans Payload 'name' => 'required|string|max:255', 'is_enabled' => 'required|boolean', 'submission_begin_date' => 'nullable|date_format:U', 'submission_end_date' => 'nullable|required_with:submission_begin_date|date_format:U|after_or_equal:submission_begin_date', 'voting_begin_date' => 'nullable|date_format:U', 'voting_end_date' => 'nullable|required_with:voting_begin_date|date_format:U|after_or_equal:voting_begin_date', 'selection_begin_date' => 'nullable|date_format:U', 'selection_end_date' => 'nullable|required_with:selection_begin_date|date_format:U|after_or_equal:selection_begin_date', Change-Id: I73eb45cd5f15b79b294ef9b098f7fa749c2122ef
236 lines
7.8 KiB
PHP
236 lines
7.8 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\Services\Apis\CalendarSync\ICalendarSyncRemoteFacadeFactory;
|
|
use App\Services\Apis\GoogleGeoCodingAPI;
|
|
use App\Services\Apis\IGeoCodingAPI;
|
|
use App\Services\Model\AttendeeService;
|
|
use App\Services\Model\FolderService;
|
|
use App\Services\Model\IAttendeeService;
|
|
use App\Services\Model\IFolderService;
|
|
use App\Services\Model\ILocationService;
|
|
use App\Services\Model\IMemberService;
|
|
use App\Services\Model\IPresentationCategoryGroupService;
|
|
use App\Services\Model\IRSVPTemplateService;
|
|
use App\Services\Model\ISummitEventTypeService;
|
|
use App\Services\Model\ISummitPushNotificationService;
|
|
use App\Services\Model\ISummitSelectionPlanService;
|
|
use App\Services\Model\ISummitTicketTypeService;
|
|
use App\Services\Model\ISummitTrackService;
|
|
use App\Services\Model\PresentationCategoryGroupService;
|
|
use App\Services\Model\SummitLocationService;
|
|
use App\Services\Model\MemberService;
|
|
use App\Services\Model\RSVPTemplateService;
|
|
use App\Services\Model\SummitPromoCodeService;
|
|
use App\Services\Model\SummitPushNotificationService;
|
|
use App\Services\Model\SummitSelectionPlanService;
|
|
use App\Services\Model\SummitTicketTypeService;
|
|
use App\Services\Model\SummitTrackService;
|
|
use App\Services\SummitEventTypeService;
|
|
use Illuminate\Support\Facades\App;
|
|
use Illuminate\Support\Facades\Config;
|
|
use Illuminate\Support\ServiceProvider;
|
|
use ModelSerializers\BaseSerializerTypeSelector;
|
|
use ModelSerializers\ISerializerTypeSelector;
|
|
use services\apis\CalendarSync\CalendarSyncRemoteFacadeFactory;
|
|
use services\apis\EventbriteAPI;
|
|
use services\apis\FireBaseGCMApi;
|
|
use services\apis\IEventbriteAPI;
|
|
use services\apis\IPushNotificationApi;
|
|
use services\model\IPresentationService;
|
|
use services\model\ISpeakerService;
|
|
use services\model\ISummitPromoCodeService;
|
|
use libs\utils\ICacheService;
|
|
use services\model\ISummitService;
|
|
use services\model\PresentationService;
|
|
use services\model\SpeakerService;
|
|
use services\model\SummitService;
|
|
use services\utils\RedisCacheService;
|
|
/***
|
|
* Class ServicesProvider
|
|
* @package services
|
|
*/
|
|
final class ServicesProvider extends ServiceProvider
|
|
{
|
|
protected $defer = false;
|
|
|
|
public function boot()
|
|
{
|
|
}
|
|
|
|
public function register()
|
|
{
|
|
App::singleton(ICacheService::class, RedisCacheService::class);
|
|
|
|
App::singleton(\libs\utils\ITransactionService::class, function(){
|
|
return new \services\utils\DoctrineTransactionService('ss');
|
|
});
|
|
|
|
App::singleton(\libs\utils\IEncryptionService::class, function(){
|
|
return new \services\utils\EncryptionService(
|
|
Config::get("server.ss_encrypt_key", ''),
|
|
Config::get("server.ss_encrypt_cypher", '')
|
|
);
|
|
});
|
|
|
|
// setting facade
|
|
$this->app['encryption'] = App::share(function ($app) {
|
|
return new \services\utils\EncryptionService(
|
|
Config::get("server.ss_encrypt_key", ''),
|
|
Config::get("server.ss_encrypt_cypher", '')
|
|
);
|
|
});
|
|
|
|
App::singleton(ISerializerTypeSelector::class, BaseSerializerTypeSelector::class);
|
|
|
|
App::singleton(ISummitService::class, SummitService::class);
|
|
|
|
App::singleton(ISpeakerService::class, SpeakerService::class);
|
|
|
|
App::singleton(IPresentationService::class, PresentationService::class);
|
|
|
|
App::singleton('services\model\IChatTeamService', 'services\model\ChatTeamService');
|
|
|
|
App::singleton(IEventbriteAPI::class, function(){
|
|
$api = new EventbriteAPI();
|
|
$api->setCredentials(array('token' => Config::get("server.eventbrite_oauth2_personal_token", null)));
|
|
return $api;
|
|
});
|
|
|
|
App::singleton(IPushNotificationApi::class, function(){
|
|
$api = new FireBaseGCMApi(Config::get("server.firebase_gcm_server_key", null));
|
|
return $api;
|
|
});
|
|
|
|
App::singleton
|
|
(
|
|
IAttendeeService::class,
|
|
AttendeeService::class
|
|
);
|
|
|
|
App::singleton
|
|
(
|
|
ICalendarSyncRemoteFacadeFactory::class,
|
|
CalendarSyncRemoteFacadeFactory::class
|
|
);
|
|
|
|
// work request pre processors
|
|
|
|
App::singleton
|
|
(
|
|
'App\Services\Model\Strategies\ICalendarSyncWorkRequestPreProcessorStrategyFactory',
|
|
'App\Services\Model\Strategies\CalendarSyncWorkRequestPreProcessorStrategyFactory'
|
|
);
|
|
|
|
App::when('App\Services\Model\MemberActionsCalendarSyncPreProcessor')
|
|
->needs('App\Services\Model\ICalendarSyncWorkRequestQueueManager')
|
|
->give('App\Services\Model\MemberScheduleWorkQueueManager');
|
|
|
|
App::when('App\Services\Model\AdminActionsCalendarSyncPreProcessor')
|
|
->needs('App\Services\Model\ICalendarSyncWorkRequestQueueManager')
|
|
->give('App\Services\Model\AdminScheduleWorkQueueManager');
|
|
|
|
// work request process services
|
|
|
|
App::when('App\Services\Model\MemberActionsCalendarSyncProcessingService')
|
|
->needs('App\Services\Model\ICalendarSyncWorkRequestPreProcessor')
|
|
->give('App\Services\Model\MemberActionsCalendarSyncPreProcessor');
|
|
|
|
App::singleton
|
|
(
|
|
'App\Services\Model\IMemberActionsCalendarSyncProcessingService',
|
|
'App\Services\Model\MemberActionsCalendarSyncProcessingService'
|
|
);
|
|
|
|
App::when('App\Services\Model\AdminActionsCalendarSyncProcessingService')
|
|
->needs('App\Services\Model\ICalendarSyncWorkRequestPreProcessor')
|
|
->give('App\Services\Model\AdminActionsCalendarSyncPreProcessor');
|
|
|
|
App::singleton
|
|
(
|
|
'App\Services\Model\IAdminActionsCalendarSyncProcessingService',
|
|
'App\Services\Model\AdminActionsCalendarSyncProcessingService'
|
|
);
|
|
|
|
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
|
|
(
|
|
IFolderService::class,
|
|
FolderService::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(IGeoCodingAPI::class, function(){
|
|
return new GoogleGeoCodingAPI
|
|
(
|
|
Config::get("server.google_geocoding_api_key", null)
|
|
);
|
|
});
|
|
|
|
|
|
App::singleton(
|
|
ISummitSelectionPlanService::class,
|
|
SummitSelectionPlanService::class
|
|
);
|
|
}
|
|
} |