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 / Domain / Factory / User / ProviderFactory.php
ameliabooking / src / Domain / Factory / User Last commit date
ProviderFactory.php 1 year ago UserFactory.php 1 month ago
ProviderFactory.php
62 lines
1 <?php
2
3 namespace AmeliaBooking\Domain\Factory\User;
4
5 use AmeliaBooking\Domain\Collection\Collection;
6 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
7 use AmeliaBooking\Domain\Factory\Bookable\Service\ServiceFactory;
8
9 /**
10 * Class ProviderFactory
11 *
12 * @package AmeliaBooking\Domain\Factory\User
13 */
14 class ProviderFactory extends UserFactory
15 {
16 /**
17 * @param array $providers
18 * @param array $services
19 * @param array $providersServices
20 *
21 * @return Collection
22 * @throws InvalidArgumentException
23 */
24 public static function createCollection($providers, $services = [], $providersServices = [])
25 {
26 $providersCollection = new Collection();
27
28 foreach ($providers as $providerKey => $providerArray) {
29 if (!empty($providerArray['stripeConnect']) && !is_array($providerArray['stripeConnect'])) {
30 $providerArray['stripeConnect'] = json_decode($providerArray['stripeConnect'], true);
31 }
32
33 if (!empty($providerArray['employeeAppleCalendar']) && !is_array($providerArray['employeeAppleCalendar'])) {
34 $providerArray['employeeAppleCalendar'] = json_decode($providerArray['employeeAppleCalendar'], true);
35 }
36
37 $providersCollection->addItem(
38 self::create($providerArray),
39 $providerKey
40 );
41
42 if ($providersServices && array_key_exists($providerKey, $providersServices)) {
43 foreach ((array)$providersServices[$providerKey] as $serviceKey => $providerService) {
44 if (array_key_exists($serviceKey, $services)) {
45 $providersCollection->getItem($providerKey)->getServiceList()->addItem(
46 ServiceFactory::create(
47 array_merge(
48 $services[$serviceKey],
49 $providerService
50 )
51 ),
52 $serviceKey
53 );
54 }
55 }
56 }
57 }
58
59 return $providersCollection;
60 }
61 }
62