|
15 | 15 | use OCA\Tables\Errors\NotFoundError; |
16 | 16 | use OCA\Tables\Errors\PermissionError; |
17 | 17 | use OCP\AppFramework\Db\DoesNotExistException; |
18 | | -use Psr\Log\LoggerInterface; |
19 | 18 |
|
20 | 19 | class RelationService { |
21 | | - |
22 | | - private ColumnMapper $columnMapper; |
23 | | - private ViewMapper $viewMapper; |
24 | | - private Row2Mapper $row2Mapper; |
25 | | - private ColumnService $columnService; |
26 | | - private LoggerInterface $logger; |
27 | | - private ?string $userId; |
28 | | - |
29 | 20 | /** @var array<string, array> Cache for relation data */ |
30 | 21 | private array $cacheRelationData = []; |
31 | 22 |
|
32 | 23 | public function __construct( |
33 | | - ColumnMapper $columnMapper, |
34 | | - ViewMapper $viewMapper, |
35 | | - Row2Mapper $row2Mapper, |
36 | | - ColumnService $columnService, |
37 | | - LoggerInterface $logger, |
38 | | - ?string $userId, |
| 24 | + private ColumnMapper $columnMapper, |
| 25 | + private ViewMapper $viewMapper, |
| 26 | + private Row2Mapper $row2Mapper, |
| 27 | + private ColumnService $columnService, |
| 28 | + private ?string $userId, |
39 | 29 | ) { |
40 | | - $this->columnMapper = $columnMapper; |
41 | | - $this->viewMapper = $viewMapper; |
42 | | - $this->row2Mapper = $row2Mapper; |
43 | | - $this->columnService = $columnService; |
44 | | - $this->logger = $logger; |
45 | | - $this->userId = $userId; |
46 | 30 | } |
47 | 31 |
|
48 | 32 | /** |
@@ -171,16 +155,16 @@ private function getRelationDataForTarget(string $target, Column $column): array |
171 | 155 | } |
172 | 156 |
|
173 | 157 | $settings = $column->getCustomSettingsArray(); |
174 | | - if (empty($settings['relationType']) || empty($settings['targetId']) || empty($settings['labelColumn'])) { |
| 158 | + if (empty($settings[Column::RELATION_TYPE]) || empty($settings[Column::RELATION_TARGET_ID]) || empty($settings[Column::RELATION_LABEL_COLUMN])) { |
175 | 159 | $this->cacheRelationData[$cacheKey] = []; |
176 | 160 | return []; |
177 | 161 | } |
178 | 162 |
|
179 | | - $isView = $settings['relationType'] === 'view'; |
180 | | - $targetId = $settings['targetId'] ?? null; |
| 163 | + $isView = $settings[Column::RELATION_TYPE] === 'view'; |
| 164 | + $targetId = $settings[Column::RELATION_TARGET_ID] ?? null; |
181 | 165 |
|
182 | 166 | try { |
183 | | - $targetColumn = $this->columnMapper->find($settings['labelColumn']); |
| 167 | + $targetColumn = $this->columnMapper->find($settings[Column::RELATION_LABEL_COLUMN]); |
184 | 168 | if ($isView) { |
185 | 169 | $view = $this->viewMapper->find($targetId); |
186 | 170 | $rows = $this->row2Mapper->findAll( |
@@ -212,7 +196,7 @@ private function getRelationDataForTarget(string $target, Column $column): array |
212 | 196 | foreach ($rows as $row) { |
213 | 197 | $data = $row->getData(); |
214 | 198 | $displayFieldData = array_filter($data, function ($item) use ($settings) { |
215 | | - return $item['columnId'] === (int)$settings['labelColumn']; |
| 199 | + return $item['columnId'] === (int)$settings[Column::RELATION_LABEL_COLUMN]; |
216 | 200 | }); |
217 | 201 | $value = reset($displayFieldData)['value'] ?? null; |
218 | 202 |
|
|
0 commit comments