PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
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 / CancelBookingRemotelyController.php
ameliabooking / src / Application / Controller / Booking / Appointment Last commit date
AddAppointmentController.php 1 month ago AddBookingController.php 2 weeks ago ApproveBookingRemotelyController.php 1 month ago CancelBookingController.php 1 month ago CancelBookingRemotelyController.php 1 month ago DeleteAppointmentController.php 1 month ago DeleteBookingController.php 1 month ago DeleteBookingRemotelyController.php 1 month ago GetAppointmentBookingsController.php 1 month ago GetAppointmentController.php 1 month ago GetAppointmentsController.php 1 month ago GetIcsController.php 1 month ago GetTimeSlotsController.php 1 month ago ReassignBookingController.php 1 month ago RejectBookingRemotelyController.php 1 month ago SuccessfulBookingController.php 1 month ago UpdateAppointmentController.php 1 month ago UpdateAppointmentNoteController.php 1 month ago UpdateAppointmentStatusController.php 1 month ago UpdateAppointmentTimeController.php 1 month ago UpdateBookingStatusController.php 1 month ago
CancelBookingRemotelyController.php
64 lines
1 <?php
2
3 namespace AmeliaBooking\Application\Controller\Booking\Appointment;
4
5 use AmeliaBooking\Application\Commands\Booking\Appointment\CancelBookingRemotelyCommand;
6 use AmeliaBooking\Application\Commands\Booking\Appointment\UpdateBookingStatusCommand;
7 use AmeliaBooking\Application\Commands\CommandResult;
8 use AmeliaBooking\Application\Controller\Controller;
9 use AmeliaBooking\Domain\Events\DomainEventBus;
10 use AmeliaVendor\Psr\Http\Message\ServerRequestInterface as Request;
11
12 /**
13 * Class CancelBookingRemotelyController
14 *
15 * @package AmeliaBooking\Application\Controller\Booking\Appointment
16 */
17 class CancelBookingRemotelyController extends Controller
18 {
19 /**
20 * Fields for calendar service that can be received from front-end
21 *
22 * @var array
23 */
24 protected $allowedFields = [
25 'token',
26 'type',
27 'fromForm'
28 ];
29
30 /**
31 * Instantiates the Update Appointment command to hand it over to the Command Handler
32 *
33 * @param Request $request
34 * @param $args
35 *
36 * @return CancelBookingRemotelyCommand
37 * @throws \RuntimeException
38 */
39 protected function instantiateCommand(Request $request, $args)
40 {
41 $command = new CancelBookingRemotelyCommand($args);
42 $requestBody = $request->getParsedBody();
43 $command->setField('token', (string)self::getParam($request, 'token', ''));
44 $command->setField('type', (string)self::getParam($request, 'type', ''));
45 $command->setField('fromForm', self::getParam($request, 'fromForm', false));
46 $this->setCommandFields($command, $requestBody);
47
48 return $command;
49 }
50
51 /**
52 * @param DomainEventBus $eventBus
53 * @param CommandResult $result
54 *
55 * @return void
56 */
57 protected function emitSuccessEvent(DomainEventBus $eventBus, CommandResult $result)
58 {
59 if ($result->getData() && empty($result->getData()['fromForm'])) {
60 $eventBus->emit('BookingCanceled', $result);
61 }
62 }
63 }
64