PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.0.2
Booking for Appointments and Events Calendar – Amelia v2.0.2
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 / AddServiceController.php
ameliabooking / src / Application / Controller / Bookable / Service Last commit date
AddServiceController.php 6 months ago DeleteServiceController.php 6 months ago GetServiceController.php 6 months ago GetServiceDeleteEffectController.php 1 year ago GetServicesController.php 6 months ago UpdateServiceController.php 6 months ago UpdateServiceStatusController.php 6 months ago UpdateServicesPositionsController.php 1 year ago
AddServiceController.php
96 lines
1 <?php
2
3 /**
4 * @copyright © Melograno Ventures. 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\AddServiceCommand;
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 AddServiceController
18 *
19 * @package AmeliaBooking\Application\Controller\Bookable\Service
20 */
21 class AddServiceController 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 'bringingAnyone',
46 'show',
47 'aggregatedPrice',
48 'settings',
49 'recurringCycle',
50 'recurringSub',
51 'recurringPayment',
52 'timeBefore',
53 'translations',
54 'deposit',
55 'depositPayment',
56 'depositPerPerson',
57 'fullPayment',
58 'mandatoryExtra',
59 'minSelectedExtras',
60 'customPricing',
61 'limitPerCustomer',
62 ];
63
64 /**
65 * Instantiates the Add Service command to hand it over to the Command Handler
66 *
67 * @param Request $request
68 * @param $args
69 *
70 * @return AddServiceCommand
71 * @throws \RuntimeException
72 */
73 protected function instantiateCommand(Request $request, $args)
74 {
75 $command = new AddServiceCommand($args);
76
77 $requestBody = $request->getParsedBody();
78
79 $this->filter($requestBody);
80 $this->setCommandFields($command, $requestBody);
81
82 return $command;
83 }
84
85 /**
86 * @param DomainEventBus $eventBus
87 * @param CommandResult $result
88 *
89 * @return void
90 */
91 protected function emitSuccessEvent(DomainEventBus $eventBus, CommandResult $result)
92 {
93 $eventBus->emit('bookable.service.added', $result);
94 }
95 }
96