ILIAS  trunk Revision v11.0_alpha-1715-g7fc467680fb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
SettingsDBRepository.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
23 use ilDBInterface;
25 
27 {
28  public function __construct(
29  protected ilDBInterface $db,
30  protected InternalDataService $data
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 }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
__construct(protected ilDBInterface $db, protected InternalDataService $data)
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23