PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.0.1
Booking for Appointments and Events Calendar – Amelia v2.0.1
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 / Infrastructure / Repository / Booking / Event / EventPeriodsRepository.php
ameliabooking / src / Infrastructure / Repository / Booking / Event Last commit date
CustomerBookingEventPeriodRepository.php 8 months ago CustomerBookingEventTicketRepository.php 8 months ago EventPeriodsRepository.php 8 months ago EventProvidersRepository.php 1 year ago EventRepository.php 8 months ago EventTagsRepository.php 8 months ago EventTicketRepository.php 8 months ago
EventPeriodsRepository.php
103 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\Repository\Booking\Event;
4
5 use AmeliaBooking\Domain\Entity\Booking\Event\EventPeriod;
6 use AmeliaBooking\Domain\Factory\Booking\Event\EventFactory;
7 use AmeliaBooking\Domain\Factory\Booking\Event\EventPeriodFactory;
8 use AmeliaBooking\Domain\Repository\Booking\Event\EventRepositoryInterface;
9 use AmeliaBooking\Domain\Services\DateTime\DateTimeService;
10 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
11 use AmeliaBooking\Infrastructure\Repository\AbstractRepository;
12
13 /**
14 * Class EventPeriodsRepository
15 *
16 * @package AmeliaBooking\Infrastructure\Repository\Booking\Event
17 */
18 class EventPeriodsRepository extends AbstractRepository implements EventRepositoryInterface
19 {
20 public const FACTORY = EventPeriodFactory::class;
21
22 /**
23 * @param EventPeriod $entity
24 *
25 * @return int
26 * @throws QueryExecutionException
27 */
28 public function add($entity)
29 {
30 $data = $entity->toArray();
31
32 $params = [
33 ':eventId' => $data['eventId'],
34 ':periodStart' => DateTimeService::getCustomDateTimeInUtc($data['periodStart']),
35 ':periodEnd' => DateTimeService::getCustomDateTimeInUtc($data['periodEnd']),
36 ];
37
38 try {
39 $statement = $this->connection->prepare(
40 "INSERT INTO {$this->table}
41 (
42 `eventId`,
43 `periodStart`,
44 `periodEnd`
45 )
46 VALUES (
47 :eventId,
48 :periodStart,
49 :periodEnd
50 )"
51 );
52
53 $res = $statement->execute($params);
54
55 if (!$res) {
56 throw new QueryExecutionException('Unable to add data in ' . __CLASS__);
57 }
58
59 return $this->connection->lastInsertId();
60 } catch (\Exception $e) {
61 throw new QueryExecutionException('Unable to add data in ' . __CLASS__, $e->getCode(), $e);
62 }
63 }
64
65 /**
66 * @param int $id
67 * @param EventPeriod $entity
68 *
69 * @return mixed
70 * @throws QueryExecutionException
71 */
72 public function update($id, $entity)
73 {
74 $data = $entity->toArray();
75
76 $params = [
77 ':id' => $id,
78 ':periodStart' => DateTimeService::getCustomDateTimeInUtc($data['periodStart']),
79 ':periodEnd' => DateTimeService::getCustomDateTimeInUtc($data['periodEnd'])
80 ];
81
82 try {
83 $statement = $this->connection->prepare(
84 "UPDATE {$this->table}
85 SET
86 `periodStart` = :periodStart,
87 `periodEnd` = :periodEnd
88 WHERE id = :id"
89 );
90
91 $res = $statement->execute($params);
92
93 if (!$res) {
94 throw new QueryExecutionException('Unable to save data in ' . __CLASS__);
95 }
96
97 return $res;
98 } catch (\Exception $e) {
99 throw new QueryExecutionException('Unable to save data in ' . __CLASS__, $e->getCode(), $e);
100 }
101 }
102 }
103