PluginProbe
Booking for Appointments and Events Calendar – Amelia / 2.4.2
Booking for Appointments and Events Calendar – Amelia v2.4.2
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 All 59 releases
ameliabooking / src / Application / Controller / Booking / Event / UpdateEventController.php
UpdateEventController.php
110 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace AmeliaBooking\Application\Controller\Booking\Event;
4
5 use AmeliaBooking\Application\Commands\Booking\Event\UpdateEventCommand;
6 use AmeliaBooking\Application\Commands\CommandResult;
7 use AmeliaBooking\Application\Controller\Controller;
8 use AmeliaBooking\Domain\Events\DomainEventBus;
9 use RuntimeException;
10 use AmeliaVendor\Psr\Http\Message\ServerRequestInterface as Request;
11
12 /**
13 * Class UpdateEventController
14 *
15 * @package AmeliaBooking\Application\Controller\Booking\Event
16 */
17 class UpdateEventController extends Controller
18 {
19 /**
20 * Fields for event that can be received from front-end
21 *
22 * @var array
23 */
24 public $allowedFields = [
25 'id',
26 'parentId',
27 'name',
28 'periods',
29 'bookingOpens',
30 'bookingCloses',
31 'bookingOpensRec',
32 'bookingClosesRec',
33 'recurring',
34 'bringingAnyone',
35 'bookMultipleTimes',
36 'maxCapacity',
37 'maxCustomCapacity',
38 'maxExtraPeople',
39 'price',
40 'providers',
41 'tags',
42 'description',
43 'pictureFullPath',
44 'pictureThumbPath',
45 'gallery',
46 'color',
47 'show',
48 'locationId',
49 'customLocation',
50 'settings',
51 'applyGlobally',
52 'zoomUserId',
53 'organizerId',
54 'translations',
55 'deposit',
56 'depositPayment',
57 'depositPerPerson',
58 'timeZone',
59 'utc',
60 'customTickets',
61 'fullPayment',
62 'customPricing',
63 'closeAfterMin',
64 'closeAfterMinBookings',
65 'notifyParticipants',
66 'aggregatedPrice'
67 ];
68
69 /**
70 * Instantiates the Update Event command to hand it over to the Command Handler
71 *
72 * @param Request $request
73 * @param $args
74 *
75 * @return UpdateEventCommand
76 * @throws RuntimeException
77 */
78 protected function instantiateCommand(Request $request, $args)
79 {
80 $command = new UpdateEventCommand($args);
81
82 $requestBody = $request->getParsedBody();
83
84 $this->filter($requestBody);
85 $this->setCommandFields($command, $requestBody);
86 $command->setToken($request);
87
88 $params = (array)$request->getQueryParams();
89
90 if (isset($params['source'])) {
91 $command->setPage($params['source']);
92 }
93
94 return $command;
95 }
96
97 /**
98 * @param DomainEventBus $eventBus
99 * @param CommandResult $result
100 *
101 * @return void
102 */
103 protected function emitSuccessEvent(DomainEventBus $eventBus, CommandResult $result)
104 {
105 if ($result->getResult() === CommandResult::RESULT_SUCCESS) {
106 $eventBus->emit('EventEdited', $result);
107 }
108 }
109 }
110