PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.0.2
Booking for Appointments and Events Calendar – Amelia v2.0.2
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 / Appointment / AddAppointmentController.php
ameliabooking / src / Application / Controller / Booking / Appointment Last commit date
AddAppointmentController.php 11 months ago AddBookingController.php 2 years ago ApproveBookingRemotelyController.php 1 year ago CancelBookingController.php 1 year ago CancelBookingRemotelyController.php 1 year ago DeleteAppointmentController.php 1 year ago DeleteBookingController.php 4 years ago DeleteBookingRemotelyController.php 10 months ago GetAppointmentBookingsController.php 6 months ago GetAppointmentController.php 5 years ago GetAppointmentsController.php 1 year ago GetIcsController.php 4 years ago GetPackageAppointmentsController.php 1 year ago GetTimeSlotsController.php 10 months ago ReassignBookingController.php 11 months ago RejectBookingRemotelyController.php 1 year ago SuccessfulBookingController.php 1 year ago UpdateAppointmentController.php 6 months ago UpdateAppointmentStatusController.php 10 months ago UpdateAppointmentTimeController.php 1 year ago UpdateBookingStatusController.php 1 year ago
AddAppointmentController.php
80 lines
1 <?php
2
3 namespace AmeliaBooking\Application\Controller\Booking\Appointment;
4
5 use AmeliaBooking\Application\Commands\Booking\Appointment\AddAppointmentCommand;
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 AddAppointmentController
14 *
15 * @package AmeliaBooking\Application\Controller\Booking\Appointment
16 */
17 class AddAppointmentController extends Controller
18 {
19 /**
20 * Fields for appointment that can be received from front-end
21 *
22 * @var array
23 */
24 public $allowedFields = [
25 'bookings',
26 'bookingStart',
27 'notifyParticipants',
28 'createPaymentLinks',
29 'internalNotes',
30 'serviceId',
31 'providerId',
32 'locationId',
33 'payment',
34 'recurring',
35 'utc',
36 'timeZone',
37 'packageCustomer',
38 'lessonSpace'
39 ];
40
41 /**
42 * Instantiates the Add Appointment command to hand it over to the Command Handler
43 *
44 * @param Request $request
45 * @param $args
46 *
47 * @return AddAppointmentCommand
48 * @throws RuntimeException
49 */
50 protected function instantiateCommand(Request $request, $args)
51 {
52 $command = new AddAppointmentCommand($args);
53
54 $requestBody = $request->getParsedBody();
55 $this->setCommandFields($command, $requestBody);
56 $command->setToken($request);
57
58 $params = (array)$request->getQueryParams();
59
60 if (isset($params['source'])) {
61 $command->setPage($params['source']);
62 }
63
64 return $command;
65 }
66
67 /**
68 * @param DomainEventBus $eventBus
69 * @param CommandResult $result
70 *
71 * @return void
72 */
73 protected function emitSuccessEvent(DomainEventBus $eventBus, CommandResult $result)
74 {
75 if ($result->getResult() === CommandResult::RESULT_SUCCESS) {
76 $eventBus->emit('AppointmentAdded', $result);
77 }
78 }
79 }
80