Commit | Line | Data |
---|---|---|
19b53e5b | 1 | <?php |
380f3545 TO |
2 | /* |
3 | +--------------------------------------------------------------------+ | |
41498ac5 | 4 | | Copyright CiviCRM LLC. All rights reserved. | |
380f3545 | 5 | | | |
41498ac5 TO |
6 | | This work is published under the GNU AGPLv3 license with some | |
7 | | permitted exceptions and without any warranty. For full license | | |
8 | | and copyright information, see https://civicrm.org/licensing | | |
380f3545 TO |
9 | +--------------------------------------------------------------------+ |
10 | */ | |
19b53e5b C |
11 | namespace Civi\Api4; |
12 | ||
13 | /** | |
14 | * Retrieves information about all Api4 entities. | |
15 | * | |
0493ec47 CW |
16 | * @see \Civi\Api4\Generic\AbstractEntity |
17 | * | |
aa998597 | 18 | * @searchable none |
d44cc3cb | 19 | * @since 5.19 |
19b53e5b C |
20 | * @package Civi\Api4 |
21 | */ | |
22 | class Entity extends Generic\AbstractEntity { | |
23 | ||
24 | /** | |
6764a9d3 | 25 | * @param bool $checkPermissions |
19b53e5b C |
26 | * @return Action\Entity\Get |
27 | */ | |
6764a9d3 CW |
28 | public static function get($checkPermissions = TRUE) { |
29 | return (new Action\Entity\Get('Entity', __FUNCTION__)) | |
30 | ->setCheckPermissions($checkPermissions); | |
19b53e5b C |
31 | } |
32 | ||
33 | /** | |
6764a9d3 CW |
34 | * @param bool $checkPermissions |
35 | * @return Generic\BasicGetFieldsAction | |
19b53e5b | 36 | */ |
6764a9d3 CW |
37 | public static function getFields($checkPermissions = TRUE) { |
38 | return (new Generic\BasicGetFieldsAction('Entity', __FUNCTION__, function() { | |
19b53e5b | 39 | return [ |
f827fe49 CW |
40 | [ |
41 | 'name' => 'name', | |
42 | 'description' => 'Entity name', | |
43 | ], | |
60f88aac CW |
44 | [ |
45 | 'name' => 'title', | |
9813ae79 CW |
46 | 'description' => 'Localized title (singular)', |
47 | ], | |
48 | [ | |
49 | 'name' => 'title_plural', | |
50 | 'description' => 'Localized title (plural)', | |
60f88aac | 51 | ], |
90908aac CW |
52 | [ |
53 | 'name' => 'type', | |
465bc32a | 54 | 'data_type' => 'Array', |
90908aac | 55 | 'description' => 'Base class for this entity', |
465bc32a CW |
56 | 'options' => [ |
57 | 'AbstractEntity' => 'AbstractEntity', | |
58 | 'DAOEntity' => 'DAOEntity', | |
7430e70d | 59 | 'CustomValue' => 'CustomValue', |
465bc32a | 60 | 'BasicEntity' => 'BasicEntity', |
076fe09a | 61 | 'SortableEntity' => 'SortableEntity', |
9626d0a1 | 62 | 'ManagedEntity' => 'ManagedEntity', |
465bc32a | 63 | 'EntityBridge' => 'EntityBridge', |
465bc32a | 64 | ], |
90908aac | 65 | ], |
f827fe49 CW |
66 | [ |
67 | 'name' => 'description', | |
68 | 'description' => 'Description from docblock', | |
69 | ], | |
70 | [ | |
71 | 'name' => 'comment', | |
72 | 'description' => 'Comments from docblock', | |
73 | ], | |
60f88aac CW |
74 | [ |
75 | 'name' => 'icon', | |
76 | 'description' => 'crm-i icon class associated with this entity', | |
77 | ], | |
78 | [ | |
79 | 'name' => 'dao', | |
80 | 'description' => 'Class name for dao-based entities', | |
81 | ], | |
482a26e2 | 82 | [ |
b675a457 | 83 | 'name' => 'primary_key', |
650fec8e | 84 | 'data_type' => 'Array', |
b675a457 | 85 | 'description' => 'Name of unique identifier field(s) (e.g. [id])', |
482a26e2 | 86 | ], |
8ab43c93 | 87 | [ |
b441e024 | 88 | 'name' => 'label_field', |
8ab43c93 CW |
89 | 'description' => 'Field to show when displaying a record', |
90 | ], | |
076fe09a CW |
91 | [ |
92 | 'name' => 'order_by', | |
93 | 'description' => 'Default column to sort results', | |
94 | ], | |
09815e9c CW |
95 | [ |
96 | 'name' => 'searchable', | |
aa998597 CW |
97 | 'description' => 'How should this entity be presented in search UIs', |
98 | 'options' => [ | |
99 | 'primary' => ts('Primary'), | |
100 | 'secondary' => ts('Secondary'), | |
c5076889 | 101 | 'bridge' => ts('Bridge'), |
aa998597 CW |
102 | 'none' => ts('None'), |
103 | ], | |
09815e9c | 104 | ], |
a7bd99ff CW |
105 | [ |
106 | 'name' => 'paths', | |
107 | 'data_type' => 'Array', | |
108 | 'description' => 'System paths for accessing this entity', | |
109 | ], | |
f827fe49 CW |
110 | [ |
111 | 'name' => 'see', | |
e15f9453 | 112 | 'data_type' => 'Array', |
f827fe49 CW |
113 | 'description' => 'Any @see annotations from docblock', |
114 | ], | |
d44cc3cb CW |
115 | [ |
116 | 'name' => 'since', | |
117 | 'data_type' => 'String', | |
118 | 'description' => 'Version this API entity was added', | |
119 | ], | |
a75e3a97 CW |
120 | [ |
121 | 'name' => 'class', | |
122 | 'data_type' => 'String', | |
123 | 'description' => 'PHP class name', | |
124 | ], | |
c5368b3b CW |
125 | [ |
126 | 'name' => 'bridge', | |
127 | 'data_type' => 'Array', | |
128 | 'description' => 'Connecting fields for EntityBridge types', | |
129 | ], | |
2f616560 CW |
130 | [ |
131 | 'name' => 'ui_join_filters', | |
132 | 'data_type' => 'Array', | |
133 | 'description' => 'When joining entities in the UI, which fields should be presented by default in the ON clause', | |
134 | ], | |
204c3c29 CW |
135 | [ |
136 | 'name' => 'group_weights_by', | |
137 | 'data_type' => 'Array', | |
138 | 'description' => 'For sortable entities, what field groupings are used to order by weight', | |
139 | ], | |
19b53e5b | 140 | ]; |
6764a9d3 | 141 | }))->setCheckPermissions($checkPermissions); |
19b53e5b C |
142 | } |
143 | ||
144 | /** | |
6764a9d3 | 145 | * @param bool $checkPermissions |
ac018ab9 | 146 | * @deprecated |
19b53e5b C |
147 | * @return Action\Entity\GetLinks |
148 | */ | |
6764a9d3 CW |
149 | public static function getLinks($checkPermissions = TRUE) { |
150 | return (new Action\Entity\GetLinks('Entity', __FUNCTION__)) | |
151 | ->setCheckPermissions($checkPermissions); | |
19b53e5b C |
152 | } |
153 | ||
154 | /** | |
155 | * @return array | |
156 | */ | |
157 | public static function permissions() { | |
158 | return [ | |
159 | 'default' => ['access CiviCRM'], | |
160 | ]; | |
161 | } | |
162 | ||
163 | } |