PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.5
Booking for Appointments and Events Calendar – Amelia v1.2.5
2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Application / Controller / Booking / Event / AddEventController.php
ameliabooking / src / Application / Controller / Booking / Event Last commit date
AddEventController.php 1 year ago DeleteEventBookingController.php 1 year ago DeleteEventController.php 1 year ago GetCalendarEventsController.php 1 year ago GetEventController.php 1 year ago GetEventDeleteEffectController.php 1 year ago GetEventsController.php 1 year ago UpdateEventBookingController.php 1 year ago UpdateEventController.php 1 year ago UpdateEventStatusController.php 1 year ago
AddEventController.php
104 lines
1 <?php
2
3 namespace AmeliaBooking\Application\Controller\Booking\Event;
4
5 use AmeliaBooking\Application\Commands\Booking\Event\AddEventCommand;
6 use AmeliaBooking\Application\Commands\CommandResult;
7 use AmeliaBooking\Application\Controller\Controller;
8 use AmeliaBooking\Domain\Events\DomainEventBus;
9 use RuntimeException;
10 use Slim\Http\Request;
11
12 /**
13 * Class AddEventController
14 *
15 * @package AmeliaBooking\Application\Controller\Booking\Event
16 */
17 class AddEventController extends Controller
18 {
19 /**
20 * Fields for appointment that can be received from front-end
21 *
22 * @var array
23 */
24 public $allowedFields = [
25 'name',
26 'periods',
27 'bookingOpens',
28 'bookingCloses',
29 'bookingOpensRec',
30 'bookingClosesRec',
31 'recurring',
32 'bringingAnyone',
33 'bookMultipleTimes',
34 'maxCapacity',
35 'maxCustomCapacity',
36 'maxExtraPeople',
37 'price',
38 'providers',
39 'tags',
40 'description',
41 'gallery',
42 'color',
43 'show',
44 'locationId',
45 'settings',
46 'customLocation',
47 'zoomUserId',
48 'organizerId',
49 'translations',
50 'deposit',
51 'depositPayment',
52 'depositPerPerson',
53 'timeZone',
54 'utc',
55 'customTickets',
56 'fullPayment',
57 'customPricing',
58 'closeAfterMin',
59 'closeAfterMinBookings',
60 'aggregatedPrice'
61 ];
62
63 /**
64 * Instantiates the Add Event command to hand it over to the Command Handler
65 *
66 * @param Request $request
67 * @param $args
68 *
69 * @return AddEventCommand
70 * @throws RuntimeException
71 */
72 protected function instantiateCommand(Request $request, $args)
73 {
74 $command = new AddEventCommand($args);
75
76 $requestBody = $request->getParsedBody();
77
78 $this->filter($requestBody);
79 $this->setCommandFields($command, $requestBody);
80 $command->setToken($request);
81
82 $params = (array)$request->getQueryParams();
83
84 if (isset($params['source'])) {
85 $command->setPage($params['source']);
86 }
87
88 return $command;
89 }
90
91 /**
92 * @param DomainEventBus $eventBus
93 * @param CommandResult $result
94 *
95 * @return void
96 */
97 protected function emitSuccessEvent(DomainEventBus $eventBus, CommandResult $result)
98 {
99 if ($result->getResult() === CommandResult::RESULT_SUCCESS) {
100 $eventBus->emit('EventAdded', $result);
101 }
102 }
103 }
104