PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.38
Booking for Appointments and Events Calendar – Amelia v1.2.38
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 / Bookable / Service / UpdateServiceController.php
ameliabooking / src / Application / Controller / Bookable / Service Last commit date
AddServiceController.php 1 year ago DeleteServiceController.php 1 year ago GetServiceController.php 1 year ago GetServiceDeleteEffectController.php 1 year ago GetServicesController.php 1 year ago UpdateServiceController.php 1 year ago UpdateServiceStatusController.php 1 year ago UpdateServicesPositionsController.php 1 year ago
UpdateServiceController.php
100 lines
1 <?php
2
3 /**
4 * @copyright © TMS-Plugins. All rights reserved.
5 * @licence See LICENCE.md for license details.
6 */
7
8 namespace AmeliaBooking\Application\Controller\Bookable\Service;
9
10 use AmeliaBooking\Application\Commands\Bookable\Service\UpdateServiceCommand;
11 use AmeliaBooking\Application\Commands\CommandResult;
12 use AmeliaBooking\Application\Controller\Controller;
13 use AmeliaBooking\Domain\Events\DomainEventBus;
14 use Slim\Http\Request;
15
16 /**
17 * Class UpdateServiceController
18 *
19 * @package AmeliaBooking\Application\Controller\Bookable\Service
20 */
21 class UpdateServiceController extends Controller
22 {
23 /**
24 * Fields for service that can be received from front-end
25 *
26 * @var array
27 */
28 protected $allowedFields = [
29 'categoryId',
30 'color',
31 'description',
32 'duration',
33 'extras',
34 'gallery',
35 'maxCapacity',
36 'maxExtraPeople',
37 'minCapacity',
38 'name',
39 'pictureFullPath',
40 'pictureThumbPath',
41 'price',
42 'providers',
43 'status',
44 'timeAfter',
45 'timeBefore',
46 'translations',
47 'bringingAnyone',
48 'show',
49 'applyGlobally',
50 'aggregatedPrice',
51 'settings',
52 'recurringCycle',
53 'recurringSub',
54 'recurringPayment',
55 'position',
56 'deposit',
57 'depositPayment',
58 'depositPerPerson',
59 'fullPayment',
60 'mandatoryExtra',
61 'minSelectedExtras',
62 'customPricing',
63 'limitPerCustomer',
64 ];
65
66 /**
67 * Instantiates the Update Service command to hand it over to the Command Handler
68 *
69 * @param Request $request
70 * @param $args
71 *
72 * @return UpdateServiceCommand
73 * @throws \RuntimeException
74 */
75 protected function instantiateCommand(Request $request, $args)
76 {
77 $command = new UpdateServiceCommand($args);
78
79 $command->setField('id', (int)$command->getArg('id'));
80
81 $requestBody = $request->getParsedBody();
82
83 $this->filter($requestBody);
84 $this->setCommandFields($command, $requestBody);
85
86 return $command;
87 }
88
89 /**
90 * @param DomainEventBus $eventBus
91 * @param CommandResult $result
92 *
93 * @return void
94 */
95 protected function emitSuccessEvent(DomainEventBus $eventBus, CommandResult $result)
96 {
97 $eventBus->emit('bookable.service.updated', $result);
98 }
99 }
100