PluginProbe
The Innovative Form Builder – IvyForms / 1.5.1
The Innovative Form Builder – IvyForms v1.5.1
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
ivyforms / backend / src / Services / FieldOptions / FieldOptionsService.php

FieldOptionsService.php in The Innovative Form Builder – IvyForms 1.5.1, at backend/src/Services/FieldOptions/FieldOptionsService.php

94 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IvyForms\Services\FieldOptions;
4
5 use IvyForms\Common\Exceptions\InvalidArgumentException;
6 use IvyForms\Repository\FieldOptions\FieldOptionsRepositoryInterface;
7 use IvyForms\Entity\FieldOptions\FieldOptions;
8
9 class FieldOptionsService
10 {
11 /**
12 * @var FieldOptionsRepositoryInterface
13 */
14 private FieldOptionsRepositoryInterface $fieldOptionsRepository;
15
16 /**
17 * @param FieldOptionsRepositoryInterface $fieldOptionsRepository
18 */
19 public function __construct(FieldOptionsRepositoryInterface $fieldOptionsRepository)
20 {
21 $this->fieldOptionsRepository = $fieldOptionsRepository;
22 }
23
24 /**
25 * @param FieldOptions $option
26 * @return int
27 */
28 public function addOption(FieldOptions $option): int
29 {
30 return $this->fieldOptionsRepository->add($option);
31 }
32
33 /**
34 * Batch add FieldOptions entities.
35 * @param FieldOptions[] $options
36 * @return array<int> Inserted IDs
37 */
38 public function addOptions(array $options): array
39 {
40 return $this->fieldOptionsRepository->addMany($options);
41 }
42
43 /**
44 * @param FieldOptions $option
45 * @return bool
46 */
47 public function updateOption(FieldOptions $option): bool
48 {
49 return $this->fieldOptionsRepository->update($option->getId(), $option);
50 }
51
52 /**
53 * Batch update FieldOptions entities.
54 * @param FieldOptions[] $options
55 * @return int Number of updated rows
56 */
57 public function updateOptions(array $options): int
58 {
59 return $this->fieldOptionsRepository->updateMany($options);
60 }
61
62 /**
63 * @param int $fieldId
64 * @return bool
65 */
66 public function deleteOptionsByFieldId(int $fieldId): bool
67 {
68 return $this->fieldOptionsRepository->deleteByFieldId($fieldId);
69 }
70
71 /**
72 * Delete all options for multiple field IDs in one query.
73 * @param int[] $fieldIds
74 * @return int Number of deleted options
75 * @throws InvalidArgumentException
76 */
77 public function deleteOptionsByFieldIds(array $fieldIds): int
78 {
79 if (empty($fieldIds)) {
80 return 0;
81 }
82 return $this->fieldOptionsRepository->deleteByFieldIds($fieldIds);
83 }
84
85 /**
86 * @param int $fieldId
87 * @return array<FieldOptions>
88 */
89 public function getByFieldId(int $fieldId): array
90 {
91 return $this->fieldOptionsRepository->getByFieldId($fieldId);
92 }
93 }
94