PluginProbe
Booking for Appointments and Events Calendar – Amelia / 2.4.9
Booking for Appointments and Events Calendar – Amelia v2.4.9
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 All 59 releases
ameliabooking / src / Infrastructure / Repository / Schedule / SpecialDayPeriodLocationRepository.php
SpecialDayPeriodLocationRepository.php
79 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\Repository\Schedule;
4
5 use AmeliaBooking\Domain\Entity\Schedule\SpecialDayPeriodLocation;
6 use AmeliaBooking\Domain\Factory\Schedule\SpecialDayPeriodLocationFactory;
7 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
8 use AmeliaBooking\Infrastructure\Repository\AbstractRepository;
9
10 /**
11 * Class SpecialDayPeriodLocationRepository
12 *
13 * @package AmeliaBooking\Infrastructure\Repository\Schedule
14 */
15 class SpecialDayPeriodLocationRepository extends AbstractRepository
16 {
17 public const FACTORY = SpecialDayPeriodLocationFactory::class;
18
19 /**
20 * @param SpecialDayPeriodLocation $entity
21 * @param int $periodId
22 *
23 * @return int
24 * @throws QueryExecutionException
25 */
26 public function add($entity, $periodId)
27 {
28 $data = $entity->toArray();
29
30 $params = [
31 ':periodId' => $periodId,
32 ':locationId' => $data['locationId'],
33 ];
34
35 try {
36 $statement = $this->connection->prepare(
37 "INSERT INTO {$this->table}
38 (`periodId`, `locationId`)
39 VALUES (:periodId, :locationId)"
40 );
41
42 $statement->execute($params);
43 } catch (\Exception $e) {
44 throw new QueryExecutionException('Unable to add data in ' . __CLASS__ . '. ' . $e->getMessage(), $e->getCode(), $e);
45 }
46
47 return $this->connection->lastInsertId();
48 }
49
50 /**
51 * @param SpecialDayPeriodLocation $entity
52 * @param int $id
53 *
54 * @return void
55 * @throws QueryExecutionException
56 */
57 public function update($entity, $id)
58 {
59 $data = $entity->toArray();
60
61 $params = [
62 ':id' => $id,
63 ':locationId' => $data['locationId'],
64 ];
65
66 try {
67 $statement = $this->connection->prepare(
68 "UPDATE {$this->table}
69 SET `locationId` = :locationId
70 WHERE id = :id"
71 );
72
73 $statement->execute($params);
74 } catch (\Exception $e) {
75 throw new QueryExecutionException('Unable to save data in ' . __CLASS__ . '. ' . $e->getMessage(), $e->getCode(), $e);
76 }
77 }
78 }
79