ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Registration\RegistrationCodeRepository Class Reference
+ Collaboration diagram for ILIAS\Registration\RegistrationCodeRepository:

Public Member Functions

 __construct (protected readonly ilDBInterface $db)
 
 getTotalCodeCount (?CodeFilter $code_filter=null)
 
 getCodesData (string $order_field, string $order_direction, int $offset, int $limit, ?CodeFilter $code_filter=null)
 
 loadCodesByIds (array $ids)
 
 deleteCodes (array $ids)
 
 getGenerationDates ()
 
 getCodesByFilter (CodeFilter $code_filter)
 

Private Member Functions

 filterToSQL (CodeFilter $code_filter,)
 

Private Attributes

const string TABLE_NAME = 'reg_registration_codes'
 

Detailed Description

Definition at line 26 of file RegistrationCodeRepository.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Registration\RegistrationCodeRepository::__construct ( protected readonly ilDBInterface  $db)

Definition at line 30 of file RegistrationCodeRepository.php.

32 {
33 }

Member Function Documentation

◆ deleteCodes()

ILIAS\Registration\RegistrationCodeRepository::deleteCodes ( array  $ids)
Parameters
list<int>$ids

Definition at line 145 of file RegistrationCodeRepository.php.

145 : bool
146 {
147 if (\count($ids)) {
148 return (bool) $this->db->manipulate('DELETE FROM ' . self::TABLE_NAME . ' WHERE ' . $this->db->in(
149 'code_id',
150 $ids,
151 false,
153 ));
154 }
155
156 return false;
157 }

References ilDBConstants\T_INTEGER.

◆ filterToSQL()

ILIAS\Registration\RegistrationCodeRepository::filterToSQL ( CodeFilter  $code_filter)
private

Definition at line 35 of file RegistrationCodeRepository.php.

37 : string {
38 $where = [];
39 if ($code_filter->getCode()) {
40 $where[] = $this->db->like('code', ilDBConstants::T_TEXT, '%' . $code_filter->getCode() . '%');
41 }
42 if ($code_filter->getRole()) {
43 $where[] = 'role = ' . $this->db->quote($code_filter->getRole(), ilDBConstants::T_INTEGER);
44 }
45 if ($code_filter->getGenerated()) {
46 $where[] = 'generated_on = ' . $this->db->quote($code_filter->getGenerated(), ilDBConstants::T_TEXT);
47 }
48 if ($code_filter->getAccessLimitation()) {
49 $where[] = 'alimit = ' . $this->db->quote($code_filter->getAccessLimitation(), ilDBConstants::T_TEXT);
50 }
51 if ($where !== []) {
52 return ' WHERE ' . implode(' AND ', $where);
53 }
54
55 return '';
56 }

References ILIAS\Registration\CodeFilter\getCode(), and ilDBConstants\T_TEXT.

+ Here is the call graph for this function:

◆ getCodesByFilter()

ILIAS\Registration\RegistrationCodeRepository::getCodesByFilter ( CodeFilter  $code_filter)
Returns
list

Definition at line 187 of file RegistrationCodeRepository.php.

187 : array
188 {
189 $set = $this->db->query(
190 'SELECT * FROM ' . self::TABLE_NAME .
191 ($code_filter ? $this->filterToSQL($code_filter) : '')
192 );
193 $result = [];
194 while ($rec = $this->db->fetchAssoc($set)) {
195 $result[] = $rec;
196 }
197
198 return $result;
199 }

◆ getCodesData()

ILIAS\Registration\RegistrationCodeRepository::getCodesData ( string  $order_field,
string  $order_direction,
int  $offset,
int  $limit,
?CodeFilter  $code_filter = null 
)
Returns
list

Definition at line 84 of file RegistrationCodeRepository.php.

90 : array {
91 $sql = 'SELECT * FROM ' . self::TABLE_NAME . ($code_filter ? $this->filterToSQL($code_filter) : '');
92 if ($order_field) {
93 if ($order_field === 'generated') {
94 $order_field = 'generated_on';
95 }
96 $sql .= ' ORDER BY ' . $order_field . ' ' . $order_direction;
97 }
98
99 $this->db->setLimit($limit, $offset);
100 $set = $this->db->query($sql);
101 $result = [];
102 while ($rec = $this->db->fetchAssoc($set)) {
103 $rec['generated'] = (int) $rec['generated_on'];
104 unset($rec['generated_on']);
105 $result[] = $rec;
106 }
107
108 return $result;
109 }

◆ getGenerationDates()

ILIAS\Registration\RegistrationCodeRepository::getGenerationDates ( )
Returns
list<int>

Definition at line 162 of file RegistrationCodeRepository.php.

162 : array
163 {
164 $set = $this->db->query('SELECT DISTINCT(generated_on) genr FROM ' . self::TABLE_NAME . ' ORDER BY genr');
165 $result = [];
166 while ($rec = $this->db->fetchAssoc($set)) {
167 $result[] = (int) $rec['genr'];
168 }
169
170 return $result;
171 }

References ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ getTotalCodeCount()

ILIAS\Registration\RegistrationCodeRepository::getTotalCodeCount ( ?CodeFilter  $code_filter = null)

Definition at line 58 of file RegistrationCodeRepository.php.

60 : int {
61 $set = $this->db->query('SELECT COUNT(*) AS cnt FROM ' . self::TABLE_NAME . ($code_filter ? $this->filterToSQL($code_filter) : ''));
62 $cnt = 0;
63 if ($rec = $this->db->fetchAssoc($set)) {
64 $cnt = (int) ($rec['cnt'] ?? 0);
65 }
66
67 return $cnt;
68 }

References ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ loadCodesByIds()

ILIAS\Registration\RegistrationCodeRepository::loadCodesByIds ( array  $ids)
Parameters
list<int>$ids
Returns
list

Definition at line 126 of file RegistrationCodeRepository.php.

126 : array
127 {
128 $set = $this->db->query('SELECT * FROM ' . self::TABLE_NAME . ' WHERE ' . $this->db->in(
129 'code_id',
130 $ids,
131 false,
133 ));
134 $result = [];
135 while ($rec = $this->db->fetchAssoc($set)) {
136 $result[] = $rec;
137 }
138
139 return $result;
140 }

References ilDBConstants\T_INTEGER.

Field Documentation

◆ TABLE_NAME

const string ILIAS\Registration\RegistrationCodeRepository::TABLE_NAME = 'reg_registration_codes'
private

Definition at line 28 of file RegistrationCodeRepository.php.


The documentation for this class was generated from the following file: