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 / Infrastructure / Repository / Schedule / WeekDayRepository.php
ameliabooking / src / Infrastructure / Repository / Schedule Last commit date
DayOffRepository.php 1 month ago PeriodLocationRepository.php 3 months ago PeriodRepository.php 3 months ago PeriodServiceRepository.php 3 months ago SpecialDayPeriodLocationRepository.php 3 months ago SpecialDayPeriodRepository.php 3 months ago SpecialDayPeriodServiceRepository.php 3 months ago SpecialDayRepository.php 3 months ago TimeOutRepository.php 3 months ago WeekDayRepository.php 3 months ago
WeekDayRepository.php
85 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\Repository\Schedule;
4
5 use AmeliaBooking\Domain\Entity\Schedule\WeekDay;
6 use AmeliaBooking\Domain\Factory\Schedule\WeekDayFactory;
7 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
8 use AmeliaBooking\Infrastructure\Repository\AbstractRepository;
9
10 /**
11 * Class WeekDayRepository
12 *
13 * @package AmeliaBooking\Infrastructure\Repository\Schedule
14 */
15 class WeekDayRepository extends AbstractRepository
16 {
17 public const FACTORY = WeekDayFactory::class;
18
19 /**
20 * @param WeekDay $entity
21 * @param int $userId
22 *
23 * @return int
24 * @throws QueryExecutionException
25 */
26 public function add($entity, $userId)
27 {
28 $data = $entity->toArray();
29
30 $params = [
31 ':userId' => $userId,
32 ':dayIndex' => $data['dayIndex'],
33 ':startTime' => $data['startTime'],
34 ':endTime' => $data['endTime'],
35 ];
36
37 try {
38 $statement = $this->connection->prepare(
39 "INSERT INTO {$this->table}
40 (`userId`, `dayIndex`, `startTime`, `endTime`)
41 VALUES
42 (:userId, :dayIndex, :startTime, :endTime)"
43 );
44
45 $statement->execute($params);
46 } catch (\Exception $e) {
47 throw new QueryExecutionException('Unable to add data in ' . __CLASS__ . '. ' . $e->getMessage(), $e->getCode(), $e);
48 }
49
50 return $this->connection->lastInsertId();
51 }
52
53 /**
54 * @param WeekDay $entity
55 * @param int $id
56 *
57 * @return bool
58 * @throws QueryExecutionException
59 */
60 public function update($entity, $id)
61 {
62 $data = $entity->toArray();
63
64 $params = [
65 ':id' => $id,
66 ':startTime' => $data['startTime'],
67 ':endTime' => $data['endTime'],
68 ];
69
70 try {
71 $statement = $this->connection->prepare(
72 "UPDATE {$this->table}
73 SET `startTime` = :startTime, `endTime` = :endTime
74 WHERE id = :id"
75 );
76
77 $statement->execute($params);
78
79 return true;
80 } catch (\Exception $e) {
81 throw new QueryExecutionException('Unable to save data in ' . __CLASS__ . '. ' . $e->getMessage(), $e->getCode(), $e);
82 }
83 }
84 }
85