Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
99.48% covered (success)
99.48%
193 / 194
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
OlzApi
100.00% covered (success)
100.00%
193 / 193
100.00% covered (success)
100.00%
3 / 3
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
93 / 93
100.00% covered (success)
100.00%
1 / 1
1
 generate
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
1
 getShallowInstance
100.00% covered (success)
100.00%
94 / 94
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace Olz\Api;
4
5use Olz\Apps\OlzApps;
6use PhpTypeScriptApi\Api;
7
8// Needed because this file can be called directly.
9require_once __DIR__.'/../../vendor/autoload.php';
10
11class OlzApi extends Api {
12    public function __construct(
13        Endpoints\OnDailyEndpoint $onDailyEndpoint,
14        Endpoints\OnContinuouslyEndpoint $onContinuouslyEndpoint,
15        Endpoints\LoginEndpoint $loginEndpoint,
16        Endpoints\ResetPasswordEndpoint $resetPasswordEndpoint,
17        Endpoints\SwitchUserEndpoint $switchUserEndpoint,
18        Endpoints\LogoutEndpoint $logoutEndpoint,
19        Endpoints\GetAuthenticatedUserEndpoint $getAuthenticatedUserEndpoint,
20        Endpoints\GetAuthenticatedRolesEndpoint $getAuthenticatedRolesEndpoint,
21        Endpoints\VerifyUserEmailEndpoint $verifyUserEmailEndpoint,
22        Endpoints\UpdateUserPasswordEndpoint $updateUserPasswordEndpoint,
23        Endpoints\ExecuteEmailReactionEndpoint $executeEmailReactionEndpoint,
24        Endpoints\LinkTelegramEndpoint $linkTelegramEndpoint,
25        Endpoints\OnTelegramEndpoint $onTelegramEndpoint,
26        Endpoints\StartUploadEndpoint $startUploadEndpoint,
27        Endpoints\UpdateUploadEndpoint $updateUploadEndpoint,
28        Endpoints\FinishUploadEndpoint $finishUploadEndpoint,
29        Endpoints\SearchEntitiesEndpoint $searchEntitiesEndpoint,
30        \Olz\Karten\Endpoints\CreateKarteEndpoint $createKarteEndpoint,
31        \Olz\Karten\Endpoints\GetKarteEndpoint $getKarteEndpoint,
32        \Olz\Karten\Endpoints\EditKarteEndpoint $editKarteEndpoint,
33        \Olz\Karten\Endpoints\UpdateKarteEndpoint $updateKarteEndpoint,
34        \Olz\Karten\Endpoints\DeleteKarteEndpoint $deleteKarteEndpoint,
35        \Olz\News\Endpoints\CreateNewsEndpoint $createNewsEndpoint,
36        \Olz\News\Endpoints\GetNewsEndpoint $getNewsEndpoint,
37        \Olz\News\Endpoints\EditNewsEndpoint $editNewsEndpoint,
38        \Olz\News\Endpoints\UpdateNewsEndpoint $updateNewsEndpoint,
39        \Olz\News\Endpoints\DeleteNewsEndpoint $deleteNewsEndpoint,
40        \Olz\News\Endpoints\GetAuthorInfoEndpoint $getAuthorInfoEndpoint,
41        \Olz\Roles\Endpoints\CreateRoleEndpoint $createRoleEndpoint,
42        \Olz\Roles\Endpoints\GetRoleEndpoint $getRoleEndpoint,
43        \Olz\Roles\Endpoints\EditRoleEndpoint $editRoleEndpoint,
44        \Olz\Roles\Endpoints\UpdateRoleEndpoint $updateRoleEndpoint,
45        \Olz\Roles\Endpoints\DeleteRoleEndpoint $deleteRoleEndpoint,
46        \Olz\Roles\Endpoints\AddUserRoleMembershipEndpoint $addUserRoleMembershipEndpoint,
47        \Olz\Roles\Endpoints\RemoveUserRoleMembershipEndpoint $removeUserRoleMembershipEndpoint,
48        \Olz\Roles\Endpoints\GetRoleInfoEndpoint $getRoleInfoEndpoint,
49        \Olz\Snippets\Endpoints\GetSnippetEndpoint $getSnippetEndpoint,
50        \Olz\Snippets\Endpoints\EditSnippetEndpoint $editSnippetEndpoint,
51        \Olz\Snippets\Endpoints\UpdateSnippetEndpoint $updateSnippetEndpoint,
52        \Olz\Service\Endpoints\CreateDownloadEndpoint $createDownloadEndpoint,
53        \Olz\Service\Endpoints\GetDownloadEndpoint $getDownloadEndpoint,
54        \Olz\Service\Endpoints\EditDownloadEndpoint $editDownloadEndpoint,
55        \Olz\Service\Endpoints\UpdateDownloadEndpoint $updateDownloadEndpoint,
56        \Olz\Service\Endpoints\DeleteDownloadEndpoint $deleteDownloadEndpoint,
57        \Olz\Service\Endpoints\CreateLinkEndpoint $createLinkEndpoint,
58        \Olz\Service\Endpoints\GetLinkEndpoint $getLinkEndpoint,
59        \Olz\Service\Endpoints\EditLinkEndpoint $editLinkEndpoint,
60        \Olz\Service\Endpoints\UpdateLinkEndpoint $updateLinkEndpoint,
61        \Olz\Service\Endpoints\DeleteLinkEndpoint $deleteLinkEndpoint,
62        \Olz\Faq\Endpoints\CreateQuestionEndpoint $createQuestionEndpoint,
63        \Olz\Faq\Endpoints\GetQuestionEndpoint $getQuestionEndpoint,
64        \Olz\Faq\Endpoints\EditQuestionEndpoint $editQuestionEndpoint,
65        \Olz\Faq\Endpoints\UpdateQuestionEndpoint $updateQuestionEndpoint,
66        \Olz\Faq\Endpoints\DeleteQuestionEndpoint $deleteQuestionEndpoint,
67        \Olz\Faq\Endpoints\CreateQuestionCategoryEndpoint $createQuestionCategoryEndpoint,
68        \Olz\Faq\Endpoints\GetQuestionCategoryEndpoint $getQuestionCategoryEndpoint,
69        \Olz\Faq\Endpoints\EditQuestionCategoryEndpoint $editQuestionCategoryEndpoint,
70        \Olz\Faq\Endpoints\UpdateQuestionCategoryEndpoint $updateQuestionCategoryEndpoint,
71        \Olz\Faq\Endpoints\DeleteQuestionCategoryEndpoint $deleteQuestionCategoryEndpoint,
72        \Olz\Startseite\Endpoints\CreateWeeklyPictureEndpoint $createWeeklyPictureEndpoint,
73        \Olz\Startseite\Endpoints\GetWeeklyPictureEndpoint $getWeeklyPictureEndpoint,
74        \Olz\Startseite\Endpoints\EditWeeklyPictureEndpoint $editWeeklyPictureEndpoint,
75        \Olz\Startseite\Endpoints\UpdateWeeklyPictureEndpoint $updateWeeklyPictureEndpoint,
76        \Olz\Startseite\Endpoints\DeleteWeeklyPictureEndpoint $deleteWeeklyPictureEndpoint,
77        \Olz\Termine\Endpoints\CreateTerminEndpoint $createTerminEndpoint,
78        \Olz\Termine\Endpoints\GetTerminEndpoint $getTerminEndpoint,
79        \Olz\Termine\Endpoints\EditTerminEndpoint $editTerminEndpoint,
80        \Olz\Termine\Endpoints\UpdateTerminEndpoint $updateTerminEndpoint,
81        \Olz\Termine\Endpoints\DeleteTerminEndpoint $deleteTerminEndpoint,
82        \Olz\Termine\Endpoints\CreateTerminLabelEndpoint $createTerminLabelEndpoint,
83        \Olz\Termine\Endpoints\ListTerminLabelsEndpoint $listTerminLabelsEndpoint,
84        \Olz\Termine\Endpoints\GetTerminLabelEndpoint $getTerminLabelEndpoint,
85        \Olz\Termine\Endpoints\EditTerminLabelEndpoint $editTerminLabelEndpoint,
86        \Olz\Termine\Endpoints\UpdateTerminLabelEndpoint $updateTerminLabelEndpoint,
87        \Olz\Termine\Endpoints\DeleteTerminLabelEndpoint $deleteTerminLabelEndpoint,
88        \Olz\Termine\Endpoints\CreateTerminLocationEndpoint $createTerminLocationEndpoint,
89        \Olz\Termine\Endpoints\GetTerminLocationEndpoint $getTerminLocationEndpoint,
90        \Olz\Termine\Endpoints\EditTerminLocationEndpoint $editTerminLocationEndpoint,
91        \Olz\Termine\Endpoints\UpdateTerminLocationEndpoint $updateTerminLocationEndpoint,
92        \Olz\Termine\Endpoints\DeleteTerminLocationEndpoint $deleteTerminLocationEndpoint,
93        \Olz\Termine\Endpoints\CreateTerminTemplateEndpoint $createTerminTemplateEndpoint,
94        \Olz\Termine\Endpoints\GetTerminTemplateEndpoint $getTerminTemplateEndpoint,
95        \Olz\Termine\Endpoints\EditTerminTemplateEndpoint $editTerminTemplateEndpoint,
96        \Olz\Termine\Endpoints\UpdateTerminTemplateEndpoint $updateTerminTemplateEndpoint,
97        \Olz\Termine\Endpoints\DeleteTerminTemplateEndpoint $deleteTerminTemplateEndpoint,
98        \Olz\Users\Endpoints\CreateUserEndpoint $createUserEndpoint,
99        \Olz\Users\Endpoints\GetUserEndpoint $getUserEndpoint,
100        \Olz\Users\Endpoints\EditUserEndpoint $editUserEndpoint,
101        \Olz\Users\Endpoints\UpdateUserEndpoint $updateUserEndpoint,
102        \Olz\Users\Endpoints\DeleteUserEndpoint $deleteUserEndpoint,
103        \Olz\Users\Endpoints\GetUserInfoEndpoint $getUserInfoEndpoint,
104        \Olz\Captcha\Endpoints\StartCaptchaEndpoint $startCaptchaEndpoint,
105    ) {
106        $this->registerEndpoint('onDaily', $onDailyEndpoint);
107        $this->registerEndpoint('onContinuously', $onContinuouslyEndpoint);
108        $this->registerEndpoint('login', $loginEndpoint);
109        $this->registerEndpoint('resetPassword', $resetPasswordEndpoint);
110        $this->registerEndpoint('switchUser', $switchUserEndpoint);
111        $this->registerEndpoint('logout', $logoutEndpoint);
112        $this->registerEndpoint('getAuthenticatedUser', $getAuthenticatedUserEndpoint);
113        $this->registerEndpoint('getAuthenticatedRoles', $getAuthenticatedRolesEndpoint);
114        $this->registerEndpoint('verifyUserEmail', $verifyUserEmailEndpoint);
115        $this->registerEndpoint('updatePassword', $updateUserPasswordEndpoint);
116        $this->registerEndpoint('executeEmailReaction', $executeEmailReactionEndpoint);
117        $this->registerEndpoint('linkTelegram', $linkTelegramEndpoint);
118        $this->registerEndpoint('onTelegram', $onTelegramEndpoint);
119        $this->registerEndpoint('startUpload', $startUploadEndpoint);
120        $this->registerEndpoint('updateUpload', $updateUploadEndpoint);
121        $this->registerEndpoint('finishUpload', $finishUploadEndpoint);
122        $this->registerEndpoint('searchEntities', $searchEntitiesEndpoint);
123
124        // Downloads
125
126        $this->registerEndpoint('createDownload', $createDownloadEndpoint);
127        $this->registerEndpoint('getDownload', $getDownloadEndpoint);
128        $this->registerEndpoint('editDownload', $editDownloadEndpoint);
129        $this->registerEndpoint('updateDownload', $updateDownloadEndpoint);
130        $this->registerEndpoint('deleteDownload', $deleteDownloadEndpoint);
131
132        // Karten
133
134        $this->registerEndpoint('createKarte', $createKarteEndpoint);
135        $this->registerEndpoint('getKarte', $getKarteEndpoint);
136        $this->registerEndpoint('editKarte', $editKarteEndpoint);
137        $this->registerEndpoint('updateKarte', $updateKarteEndpoint);
138        $this->registerEndpoint('deleteKarte', $deleteKarteEndpoint);
139
140        // Links
141
142        $this->registerEndpoint('createLink', $createLinkEndpoint);
143        $this->registerEndpoint('getLink', $getLinkEndpoint);
144        $this->registerEndpoint('editLink', $editLinkEndpoint);
145        $this->registerEndpoint('updateLink', $updateLinkEndpoint);
146        $this->registerEndpoint('deleteLink', $deleteLinkEndpoint);
147
148        // News
149
150        $this->registerEndpoint('createNews', $createNewsEndpoint);
151        $this->registerEndpoint('getNews', $getNewsEndpoint);
152        $this->registerEndpoint('editNews', $editNewsEndpoint);
153        $this->registerEndpoint('updateNews', $updateNewsEndpoint);
154        $this->registerEndpoint('deleteNews', $deleteNewsEndpoint);
155        $this->registerEndpoint('getAuthorInfo', $getAuthorInfoEndpoint);
156
157        // Roles
158
159        $this->registerEndpoint('createRole', $createRoleEndpoint);
160        $this->registerEndpoint('getRole', $getRoleEndpoint);
161        $this->registerEndpoint('editRole', $editRoleEndpoint);
162        $this->registerEndpoint('updateRole', $updateRoleEndpoint);
163        $this->registerEndpoint('deleteRole', $deleteRoleEndpoint);
164
165        $this->registerEndpoint('addUserRoleMembership', $addUserRoleMembershipEndpoint);
166        $this->registerEndpoint('removeUserRoleMembership', $removeUserRoleMembershipEndpoint);
167        $this->registerEndpoint('getRoleInfo', $getRoleInfoEndpoint);
168
169        // Snippets
170
171        $this->registerEndpoint('getSnippet', $getSnippetEndpoint);
172        $this->registerEndpoint('editSnippet', $editSnippetEndpoint);
173        $this->registerEndpoint('updateSnippet', $updateSnippetEndpoint);
174
175        // Fragen & Antworten (FAQ)
176
177        $this->registerEndpoint('createQuestion', $createQuestionEndpoint);
178        $this->registerEndpoint('getQuestion', $getQuestionEndpoint);
179        $this->registerEndpoint('editQuestion', $editQuestionEndpoint);
180        $this->registerEndpoint('updateQuestion', $updateQuestionEndpoint);
181        $this->registerEndpoint('deleteQuestion', $deleteQuestionEndpoint);
182
183        $this->registerEndpoint('createQuestionCategory', $createQuestionCategoryEndpoint);
184        $this->registerEndpoint('getQuestionCategory', $getQuestionCategoryEndpoint);
185        $this->registerEndpoint('editQuestionCategory', $editQuestionCategoryEndpoint);
186        $this->registerEndpoint('updateQuestionCategory', $updateQuestionCategoryEndpoint);
187        $this->registerEndpoint('deleteQuestionCategory', $deleteQuestionCategoryEndpoint);
188
189        // Startseite
190
191        $this->registerEndpoint('createWeeklyPicture', $createWeeklyPictureEndpoint);
192        $this->registerEndpoint('getWeeklyPicture', $getWeeklyPictureEndpoint);
193        $this->registerEndpoint('editWeeklyPicture', $editWeeklyPictureEndpoint);
194        $this->registerEndpoint('updateWeeklyPicture', $updateWeeklyPictureEndpoint);
195        $this->registerEndpoint('deleteWeeklyPicture', $deleteWeeklyPictureEndpoint);
196
197        // Termine
198
199        $this->registerEndpoint('createTermin', $createTerminEndpoint);
200        $this->registerEndpoint('getTermin', $getTerminEndpoint);
201        $this->registerEndpoint('editTermin', $editTerminEndpoint);
202        $this->registerEndpoint('updateTermin', $updateTerminEndpoint);
203        $this->registerEndpoint('deleteTermin', $deleteTerminEndpoint);
204
205        // Termin Label
206
207        $this->registerEndpoint('createTerminLabel', $createTerminLabelEndpoint);
208        $this->registerEndpoint('listTerminLabels', $listTerminLabelsEndpoint);
209        $this->registerEndpoint('getTerminLabel', $getTerminLabelEndpoint);
210        $this->registerEndpoint('editTerminLabel', $editTerminLabelEndpoint);
211        $this->registerEndpoint('updateTerminLabel', $updateTerminLabelEndpoint);
212        $this->registerEndpoint('deleteTerminLabel', $deleteTerminLabelEndpoint);
213
214        // Termin Locations
215
216        $this->registerEndpoint('createTerminLocation', $createTerminLocationEndpoint);
217        $this->registerEndpoint('getTerminLocation', $getTerminLocationEndpoint);
218        $this->registerEndpoint('editTerminLocation', $editTerminLocationEndpoint);
219        $this->registerEndpoint('updateTerminLocation', $updateTerminLocationEndpoint);
220        $this->registerEndpoint('deleteTerminLocation', $deleteTerminLocationEndpoint);
221
222        // Termin Templates
223
224        $this->registerEndpoint('createTerminTemplate', $createTerminTemplateEndpoint);
225        $this->registerEndpoint('getTerminTemplate', $getTerminTemplateEndpoint);
226        $this->registerEndpoint('editTerminTemplate', $editTerminTemplateEndpoint);
227        $this->registerEndpoint('updateTerminTemplate', $updateTerminTemplateEndpoint);
228        $this->registerEndpoint('deleteTerminTemplate', $deleteTerminTemplateEndpoint);
229
230        // Users
231
232        $this->registerEndpoint('createUser', $createUserEndpoint);
233        $this->registerEndpoint('getUser', $getUserEndpoint);
234        $this->registerEndpoint('editUser', $editUserEndpoint);
235        $this->registerEndpoint('updateUser', $updateUserEndpoint);
236        $this->registerEndpoint('deleteUser', $deleteUserEndpoint);
237        $this->registerEndpoint('getUserInfo', $getUserInfoEndpoint);
238
239        // Utils
240
241        $this->registerEndpoint('startCaptcha', $startCaptchaEndpoint);
242
243        OlzApps::registerAllEndpoints($this);
244    }
245
246    public static function generate(): void {
247        $olz_api = self::getShallowInstance();
248
249        file_put_contents(
250            __DIR__.'/client/generated_olz_api_types.ts',
251            $olz_api->getTypeScriptDefinition('OlzApi')
252        );
253
254        echo "\nOLZ API client generated.\n";
255    }
256
257    public static function getShallowInstance(): self {
258        return new self(
259            new Endpoints\OnDailyEndpoint(),
260            new Endpoints\OnContinuouslyEndpoint(),
261            new Endpoints\LoginEndpoint(),
262            new Endpoints\ResetPasswordEndpoint(),
263            new Endpoints\SwitchUserEndpoint(),
264            new Endpoints\LogoutEndpoint(),
265            new Endpoints\GetAuthenticatedUserEndpoint(),
266            new Endpoints\GetAuthenticatedRolesEndpoint(),
267            new Endpoints\VerifyUserEmailEndpoint(),
268            new Endpoints\UpdateUserPasswordEndpoint(),
269            new Endpoints\ExecuteEmailReactionEndpoint(),
270            new Endpoints\LinkTelegramEndpoint(),
271            new Endpoints\OnTelegramEndpoint(),
272            new Endpoints\StartUploadEndpoint(),
273            new Endpoints\UpdateUploadEndpoint(),
274            new Endpoints\FinishUploadEndpoint(),
275            new Endpoints\SearchEntitiesEndpoint(),
276            new \Olz\Karten\Endpoints\CreateKarteEndpoint(),
277            new \Olz\Karten\Endpoints\GetKarteEndpoint(),
278            new \Olz\Karten\Endpoints\EditKarteEndpoint(),
279            new \Olz\Karten\Endpoints\UpdateKarteEndpoint(),
280            new \Olz\Karten\Endpoints\DeleteKarteEndpoint(),
281            new \Olz\News\Endpoints\CreateNewsEndpoint(),
282            new \Olz\News\Endpoints\GetNewsEndpoint(),
283            new \Olz\News\Endpoints\EditNewsEndpoint(),
284            new \Olz\News\Endpoints\UpdateNewsEndpoint(),
285            new \Olz\News\Endpoints\DeleteNewsEndpoint(),
286            new \Olz\News\Endpoints\GetAuthorInfoEndpoint(),
287            new \Olz\Roles\Endpoints\CreateRoleEndpoint(),
288            new \Olz\Roles\Endpoints\GetRoleEndpoint(),
289            new \Olz\Roles\Endpoints\EditRoleEndpoint(),
290            new \Olz\Roles\Endpoints\UpdateRoleEndpoint(),
291            new \Olz\Roles\Endpoints\DeleteRoleEndpoint(),
292            new \Olz\Roles\Endpoints\AddUserRoleMembershipEndpoint(),
293            new \Olz\Roles\Endpoints\RemoveUserRoleMembershipEndpoint(),
294            new \Olz\Roles\Endpoints\GetRoleInfoEndpoint(),
295            new \Olz\Snippets\Endpoints\GetSnippetEndpoint(),
296            new \Olz\Snippets\Endpoints\EditSnippetEndpoint(),
297            new \Olz\Snippets\Endpoints\UpdateSnippetEndpoint(),
298            new \Olz\Service\Endpoints\CreateDownloadEndpoint(),
299            new \Olz\Service\Endpoints\GetDownloadEndpoint(),
300            new \Olz\Service\Endpoints\EditDownloadEndpoint(),
301            new \Olz\Service\Endpoints\UpdateDownloadEndpoint(),
302            new \Olz\Service\Endpoints\DeleteDownloadEndpoint(),
303            new \Olz\Service\Endpoints\CreateLinkEndpoint(),
304            new \Olz\Service\Endpoints\GetLinkEndpoint(),
305            new \Olz\Service\Endpoints\EditLinkEndpoint(),
306            new \Olz\Service\Endpoints\UpdateLinkEndpoint(),
307            new \Olz\Service\Endpoints\DeleteLinkEndpoint(),
308            new \Olz\Faq\Endpoints\CreateQuestionEndpoint(),
309            new \Olz\Faq\Endpoints\GetQuestionEndpoint(),
310            new \Olz\Faq\Endpoints\EditQuestionEndpoint(),
311            new \Olz\Faq\Endpoints\UpdateQuestionEndpoint(),
312            new \Olz\Faq\Endpoints\DeleteQuestionEndpoint(),
313            new \Olz\Faq\Endpoints\CreateQuestionCategoryEndpoint(),
314            new \Olz\Faq\Endpoints\GetQuestionCategoryEndpoint(),
315            new \Olz\Faq\Endpoints\EditQuestionCategoryEndpoint(),
316            new \Olz\Faq\Endpoints\UpdateQuestionCategoryEndpoint(),
317            new \Olz\Faq\Endpoints\DeleteQuestionCategoryEndpoint(),
318            new \Olz\Startseite\Endpoints\CreateWeeklyPictureEndpoint(),
319            new \Olz\Startseite\Endpoints\GetWeeklyPictureEndpoint(),
320            new \Olz\Startseite\Endpoints\EditWeeklyPictureEndpoint(),
321            new \Olz\Startseite\Endpoints\UpdateWeeklyPictureEndpoint(),
322            new \Olz\Startseite\Endpoints\DeleteWeeklyPictureEndpoint(),
323            new \Olz\Termine\Endpoints\CreateTerminEndpoint(),
324            new \Olz\Termine\Endpoints\GetTerminEndpoint(),
325            new \Olz\Termine\Endpoints\EditTerminEndpoint(),
326            new \Olz\Termine\Endpoints\UpdateTerminEndpoint(),
327            new \Olz\Termine\Endpoints\DeleteTerminEndpoint(),
328            new \Olz\Termine\Endpoints\CreateTerminLabelEndpoint(),
329            new \Olz\Termine\Endpoints\ListTerminLabelsEndpoint(),
330            new \Olz\Termine\Endpoints\GetTerminLabelEndpoint(),
331            new \Olz\Termine\Endpoints\EditTerminLabelEndpoint(),
332            new \Olz\Termine\Endpoints\UpdateTerminLabelEndpoint(),
333            new \Olz\Termine\Endpoints\DeleteTerminLabelEndpoint(),
334            new \Olz\Termine\Endpoints\CreateTerminLocationEndpoint(),
335            new \Olz\Termine\Endpoints\GetTerminLocationEndpoint(),
336            new \Olz\Termine\Endpoints\EditTerminLocationEndpoint(),
337            new \Olz\Termine\Endpoints\UpdateTerminLocationEndpoint(),
338            new \Olz\Termine\Endpoints\DeleteTerminLocationEndpoint(),
339            new \Olz\Termine\Endpoints\CreateTerminTemplateEndpoint(),
340            new \Olz\Termine\Endpoints\GetTerminTemplateEndpoint(),
341            new \Olz\Termine\Endpoints\EditTerminTemplateEndpoint(),
342            new \Olz\Termine\Endpoints\UpdateTerminTemplateEndpoint(),
343            new \Olz\Termine\Endpoints\DeleteTerminTemplateEndpoint(),
344            new \Olz\Users\Endpoints\CreateUserEndpoint(),
345            new \Olz\Users\Endpoints\GetUserEndpoint(),
346            new \Olz\Users\Endpoints\EditUserEndpoint(),
347            new \Olz\Users\Endpoints\UpdateUserEndpoint(),
348            new \Olz\Users\Endpoints\DeleteUserEndpoint(),
349            new \Olz\Users\Endpoints\GetUserInfoEndpoint(),
350            new \Olz\Captcha\Endpoints\StartCaptchaEndpoint(),
351        );
352    }
353}
354
355// @codeCoverageIgnoreStart
356// Reason: Hard to test.
357if (isset($_SERVER['argv']) && basename(__FILE__) == basename($_SERVER['SCRIPT_FILENAME'] ?? '')) {
358    OlzApi::generate();
359}
360// @codeCoverageIgnoreEnd