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 / Appointment / AddAppointmentController.php
ameliabooking / src / Application / Controller / Booking / Appointment Last commit date
AddAppointmentController.php 1 year ago AddBookingController.php 1 year ago ApproveBookingRemotelyController.php 1 year ago CancelBookingController.php 1 year ago CancelBookingRemotelyController.php 1 year ago DeleteAppointmentController.php 1 year ago DeleteBookingController.php 1 year ago GetAppointmentController.php 1 year ago GetAppointmentsController.php 1 year ago GetIcsController.php 1 year ago GetTimeSlotsController.php 1 year ago ReassignBookingController.php 1 year ago RejectBookingRemotelyController.php 1 year ago SuccessfulBookingController.php 1 year ago UpdateAppointmentController.php 1 year ago UpdateAppointmentStatusController.php 1 year ago UpdateAppointmentTimeController.php 1 year ago
AddAppointmentController.php
79 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 'internalNotes',
29 'serviceId',
30 'providerId',
31 'locationId',
32 'payment',
33 'recurring',
34 'utc',
35 'timeZone',
36 'packageCustomer',
37 'lessonSpace'
38 ];
39
40 /**
41 * Instantiates the Add Appointment command to hand it over to the Command Handler
42 *
43 * @param Request $request
44 * @param $args
45 *
46 * @return AddAppointmentCommand
47 * @throws RuntimeException
48 */
49 protected function instantiateCommand(Request $request, $args)
50 {
51 $command = new AddAppointmentCommand($args);
52
53 $requestBody = $request->getParsedBody();
54 $this->setCommandFields($command, $requestBody);
55 $command->setToken($request);
56
57 $params = (array)$request->getQueryParams();
58
59 if (isset($params['source'])) {
60 $command->setPage($params['source']);
61 }
62
63 return $command;
64 }
65
66 /**
67 * @param DomainEventBus $eventBus
68 * @param CommandResult $result
69 *
70 * @return void
71 */
72 protected function emitSuccessEvent(DomainEventBus $eventBus, CommandResult $result)
73 {
74 if ($result->getResult() === CommandResult::RESULT_SUCCESS) {
75 $eventBus->emit('AppointmentAdded', $result);
76 }
77 }
78 }
79