ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
SettingsDBRepository.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
25
27{
28 public function __construct(
29 protected ilDBInterface $db,
31 ) {
32 }
33
34 public function create(Settings $settings): void
35 {
36 $this->db->insert('booking_settings', [
37 'booking_pool_id' => ['integer', $settings->getId()],
38 'public_log' => ['integer', (int) $settings->getPublicLog()],
39 'schedule_type' => ['integer', $settings->getScheduleType()],
40 'ovlimit' => ['integer', $settings->getOverallLimit()],
41 'rsv_filter_period' => ['integer', $settings->getReservationPeriod()],
42 'reminder_status' => ['integer', $settings->getReminderStatus()],
43 'reminder_day' => ['integer', $settings->getReminderDay()],
44 'pref_deadline' => ['integer', $settings->getPrefDeadline()],
45 'preference_nr' => ['integer', $settings->getPreferenceNr()],
46 'messages' => ['integer', (int) $settings->getMessages()],
47 ]);
48 }
49
50 public function update(Settings $settings): void
51 {
52 $this->db->update('booking_settings', [
53 'public_log' => ['integer', (int) $settings->getPublicLog()],
54 'schedule_type' => ['integer', $settings->getScheduleType()],
55 'ovlimit' => ['integer', $settings->getOverallLimit()],
56 'rsv_filter_period' => ['integer', $settings->getReservationPeriod()],
57 'reminder_status' => ['integer', $settings->getReminderStatus()],
58 'reminder_day' => ['integer', $settings->getReminderDay()],
59 'pref_deadline' => ['integer', $settings->getPrefDeadline()],
60 'preference_nr' => ['integer', $settings->getPreferenceNr()],
61 'messages' => ['integer', (int) $settings->getMessages()],
62 ], [
63 'booking_pool_id' => ['integer', $settings->getId()],
64 ]);
65 }
66
67 public function getById(int $id): ?Settings
68 {
69 $set = $this->db->queryF(
70 'SELECT * FROM booking_settings WHERE booking_pool_id = %s',
71 ['integer'],
72 [$id]
73 );
74
75 $record = $this->db->fetchAssoc($set);
76 if ($record) {
77 return $this->getSettingsFromRecord($record);
78 }
79
80 return null;
81 }
82
83 public function delete(int $id): void
84 {
85 $this->db->manipulateF(
86 'DELETE FROM booking_settings WHERE booking_pool_id = %s',
87 ['integer'],
88 [$id]
89 );
90 }
91
92 protected function getSettingsFromRecord(array $record): Settings
93 {
94 return $this->data->settings(
95 (int) $record['booking_pool_id'],
96 (bool) $record['public_log'],
97 (int) $record['schedule_type'],
98 (int) $record['ovlimit'],
99 (int) $record['rsv_filter_period'],
100 (bool) $record['reminder_status'],
101 (int) $record['reminder_day'],
102 (int) $record['pref_deadline'],
103 (int) $record['preference_nr'],
104 (bool) $record['messages']
105 );
106 }
107}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
__construct(protected ilDBInterface $db, protected InternalDataService $data)
Interface ilDBInterface.