Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 109
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzApi
0.00% covered (danger)
0.00%
0 / 109
0.00% covered (danger)
0.00%
0 / 2
6
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 104
0.00% covered (danger)
0.00%
0 / 1
2
 generate
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Olz\Api;
4
5use Olz\Apps\OlzApps;
6use PhpTypeScriptApi\Api;
7
8class OlzApi extends Api {
9    public function __construct(
10        OlzApps $olz_apps,
11        Endpoints\OnContinuouslyEndpoint $onContinuouslyEndpoint,
12        Endpoints\LoginEndpoint $loginEndpoint,
13        Endpoints\ResetPasswordEndpoint $resetPasswordEndpoint,
14        Endpoints\SwitchUserEndpoint $switchUserEndpoint,
15        Endpoints\LogoutEndpoint $logoutEndpoint,
16        Endpoints\GetAuthenticatedUserEndpoint $getAuthenticatedUserEndpoint,
17        Endpoints\GetAuthenticatedRolesEndpoint $getAuthenticatedRolesEndpoint,
18        Endpoints\GetEntitiesAroundPositionEndpoint $getEntitiesAroundPositionEndpoint,
19        Endpoints\VerifyUserEmailEndpoint $verifyUserEmailEndpoint,
20        Endpoints\UpdateUserPasswordEndpoint $updateUserPasswordEndpoint,
21        Endpoints\ExecuteEmailReactionEndpoint $executeEmailReactionEndpoint,
22        Endpoints\LinkStravaEndpoint $linkStravaEndpoint,
23        Endpoints\LinkTelegramEndpoint $linkTelegramEndpoint,
24        Endpoints\OnTelegramEndpoint $onTelegramEndpoint,
25        Endpoints\StartUploadEndpoint $startUploadEndpoint,
26        Endpoints\UpdateUploadEndpoint $updateUploadEndpoint,
27        Endpoints\FinishUploadEndpoint $finishUploadEndpoint,
28        Endpoints\SearchEntitiesEndpoint $searchEntitiesEndpoint,
29        \Olz\Anniversary\Endpoints\CreateRunEndpoint $createRunEndpoint,
30        \Olz\Anniversary\Endpoints\GetRunEndpoint $getRunEndpoint,
31        \Olz\Anniversary\Endpoints\EditRunEndpoint $editRunEndpoint,
32        \Olz\Anniversary\Endpoints\UpdateRunEndpoint $updateRunEndpoint,
33        \Olz\Anniversary\Endpoints\DeleteRunEndpoint $deleteRunEndpoint,
34        \Olz\Captcha\Endpoints\StartCaptchaEndpoint $startCaptchaEndpoint,
35        \Olz\Captcha\Endpoints\DecryptEmailTokenEndpoint $decryptEmailTokenEndpoint,
36        \Olz\Karten\Endpoints\CreateKarteEndpoint $createKarteEndpoint,
37        \Olz\Karten\Endpoints\GetKarteEndpoint $getKarteEndpoint,
38        \Olz\Karten\Endpoints\EditKarteEndpoint $editKarteEndpoint,
39        \Olz\Karten\Endpoints\UpdateKarteEndpoint $updateKarteEndpoint,
40        \Olz\Karten\Endpoints\DeleteKarteEndpoint $deleteKarteEndpoint,
41        \Olz\News\Endpoints\CreateNewsEndpoint $createNewsEndpoint,
42        \Olz\News\Endpoints\GetNewsEndpoint $getNewsEndpoint,
43        \Olz\News\Endpoints\EditNewsEndpoint $editNewsEndpoint,
44        \Olz\News\Endpoints\UpdateNewsEndpoint $updateNewsEndpoint,
45        \Olz\News\Endpoints\DeleteNewsEndpoint $deleteNewsEndpoint,
46        \Olz\News\Endpoints\GetAuthorInfoEndpoint $getAuthorInfoEndpoint,
47        \Olz\News\Endpoints\ListNewsReactionsEndpoint $listNewsReactionsEndpoint,
48        \Olz\News\Endpoints\ToggleNewsReactionEndpoint $toggleNewsReactionEndpoint,
49        \Olz\Roles\Endpoints\CreateRoleEndpoint $createRoleEndpoint,
50        \Olz\Roles\Endpoints\GetRoleEndpoint $getRoleEndpoint,
51        \Olz\Roles\Endpoints\EditRoleEndpoint $editRoleEndpoint,
52        \Olz\Roles\Endpoints\UpdateRoleEndpoint $updateRoleEndpoint,
53        \Olz\Roles\Endpoints\DeleteRoleEndpoint $deleteRoleEndpoint,
54        \Olz\Roles\Endpoints\AddUserRoleMembershipEndpoint $addUserRoleMembershipEndpoint,
55        \Olz\Roles\Endpoints\RemoveUserRoleMembershipEndpoint $removeUserRoleMembershipEndpoint,
56        \Olz\Roles\Endpoints\GetRoleInfoEndpoint $getRoleInfoEndpoint,
57        \Olz\Snippets\Endpoints\GetSnippetEndpoint $getSnippetEndpoint,
58        \Olz\Snippets\Endpoints\EditSnippetEndpoint $editSnippetEndpoint,
59        \Olz\Snippets\Endpoints\UpdateSnippetEndpoint $updateSnippetEndpoint,
60        \Olz\Service\Endpoints\CreateDownloadEndpoint $createDownloadEndpoint,
61        \Olz\Service\Endpoints\GetDownloadEndpoint $getDownloadEndpoint,
62        \Olz\Service\Endpoints\EditDownloadEndpoint $editDownloadEndpoint,
63        \Olz\Service\Endpoints\UpdateDownloadEndpoint $updateDownloadEndpoint,
64        \Olz\Service\Endpoints\DeleteDownloadEndpoint $deleteDownloadEndpoint,
65        \Olz\Service\Endpoints\CreateLinkEndpoint $createLinkEndpoint,
66        \Olz\Service\Endpoints\GetLinkEndpoint $getLinkEndpoint,
67        \Olz\Service\Endpoints\EditLinkEndpoint $editLinkEndpoint,
68        \Olz\Service\Endpoints\UpdateLinkEndpoint $updateLinkEndpoint,
69        \Olz\Service\Endpoints\DeleteLinkEndpoint $deleteLinkEndpoint,
70        \Olz\Faq\Endpoints\CreateQuestionEndpoint $createQuestionEndpoint,
71        \Olz\Faq\Endpoints\GetQuestionEndpoint $getQuestionEndpoint,
72        \Olz\Faq\Endpoints\EditQuestionEndpoint $editQuestionEndpoint,
73        \Olz\Faq\Endpoints\UpdateQuestionEndpoint $updateQuestionEndpoint,
74        \Olz\Faq\Endpoints\DeleteQuestionEndpoint $deleteQuestionEndpoint,
75        \Olz\Faq\Endpoints\CreateQuestionCategoryEndpoint $createQuestionCategoryEndpoint,
76        \Olz\Faq\Endpoints\GetQuestionCategoryEndpoint $getQuestionCategoryEndpoint,
77        \Olz\Faq\Endpoints\EditQuestionCategoryEndpoint $editQuestionCategoryEndpoint,
78        \Olz\Faq\Endpoints\UpdateQuestionCategoryEndpoint $updateQuestionCategoryEndpoint,
79        \Olz\Faq\Endpoints\DeleteQuestionCategoryEndpoint $deleteQuestionCategoryEndpoint,
80        \Olz\Startseite\Endpoints\CreateWeeklyPictureEndpoint $createWeeklyPictureEndpoint,
81        \Olz\Startseite\Endpoints\GetWeeklyPictureEndpoint $getWeeklyPictureEndpoint,
82        \Olz\Startseite\Endpoints\EditWeeklyPictureEndpoint $editWeeklyPictureEndpoint,
83        \Olz\Startseite\Endpoints\UpdateWeeklyPictureEndpoint $updateWeeklyPictureEndpoint,
84        \Olz\Startseite\Endpoints\DeleteWeeklyPictureEndpoint $deleteWeeklyPictureEndpoint,
85        \Olz\Termine\Endpoints\CreateTerminEndpoint $createTerminEndpoint,
86        \Olz\Termine\Endpoints\GetTerminEndpoint $getTerminEndpoint,
87        \Olz\Termine\Endpoints\EditTerminEndpoint $editTerminEndpoint,
88        \Olz\Termine\Endpoints\UpdateTerminEndpoint $updateTerminEndpoint,
89        \Olz\Termine\Endpoints\DeleteTerminEndpoint $deleteTerminEndpoint,
90        \Olz\Termine\Endpoints\ListTerminReactionsEndpoint $listTerminReactionsEndpoint,
91        \Olz\Termine\Endpoints\ToggleTerminReactionEndpoint $toggleTerminReactionEndpoint,
92        \Olz\Termine\Endpoints\CreateTerminLabelEndpoint $createTerminLabelEndpoint,
93        \Olz\Termine\Endpoints\ListTerminLabelsEndpoint $listTerminLabelsEndpoint,
94        \Olz\Termine\Endpoints\GetTerminLabelEndpoint $getTerminLabelEndpoint,
95        \Olz\Termine\Endpoints\EditTerminLabelEndpoint $editTerminLabelEndpoint,
96        \Olz\Termine\Endpoints\UpdateTerminLabelEndpoint $updateTerminLabelEndpoint,
97        \Olz\Termine\Endpoints\DeleteTerminLabelEndpoint $deleteTerminLabelEndpoint,
98        \Olz\Termine\Endpoints\CreateTerminLocationEndpoint $createTerminLocationEndpoint,
99        \Olz\Termine\Endpoints\GetTerminLocationEndpoint $getTerminLocationEndpoint,
100        \Olz\Termine\Endpoints\EditTerminLocationEndpoint $editTerminLocationEndpoint,
101        \Olz\Termine\Endpoints\UpdateTerminLocationEndpoint $updateTerminLocationEndpoint,
102        \Olz\Termine\Endpoints\DeleteTerminLocationEndpoint $deleteTerminLocationEndpoint,
103        \Olz\Termine\Endpoints\CreateTerminTemplateEndpoint $createTerminTemplateEndpoint,
104        \Olz\Termine\Endpoints\GetTerminTemplateEndpoint $getTerminTemplateEndpoint,
105        \Olz\Termine\Endpoints\EditTerminTemplateEndpoint $editTerminTemplateEndpoint,
106        \Olz\Termine\Endpoints\UpdateTerminTemplateEndpoint $updateTerminTemplateEndpoint,
107        \Olz\Termine\Endpoints\DeleteTerminTemplateEndpoint $deleteTerminTemplateEndpoint,
108        \Olz\Users\Endpoints\CreateUserEndpoint $createUserEndpoint,
109        \Olz\Users\Endpoints\GetUserEndpoint $getUserEndpoint,
110        \Olz\Users\Endpoints\EditUserEndpoint $editUserEndpoint,
111        \Olz\Users\Endpoints\UpdateUserEndpoint $updateUserEndpoint,
112        \Olz\Users\Endpoints\DeleteUserEndpoint $deleteUserEndpoint,
113        \Olz\Users\Endpoints\GetUserInfoEndpoint $getUserInfoEndpoint,
114    ) {
115        $this->registerEndpoint('onContinuously', $onContinuouslyEndpoint);
116        $this->registerEndpoint('login', $loginEndpoint);
117        $this->registerEndpoint('resetPassword', $resetPasswordEndpoint);
118        $this->registerEndpoint('switchUser', $switchUserEndpoint);
119        $this->registerEndpoint('logout', $logoutEndpoint);
120        $this->registerEndpoint('getAuthenticatedUser', $getAuthenticatedUserEndpoint);
121        $this->registerEndpoint('getAuthenticatedRoles', $getAuthenticatedRolesEndpoint);
122        $this->registerEndpoint('getEntitiesAroundPosition', $getEntitiesAroundPositionEndpoint);
123        $this->registerEndpoint('verifyUserEmail', $verifyUserEmailEndpoint);
124        $this->registerEndpoint('updatePassword', $updateUserPasswordEndpoint);
125        $this->registerEndpoint('executeEmailReaction', $executeEmailReactionEndpoint);
126        $this->registerEndpoint('linkStrava', $linkStravaEndpoint);
127        $this->registerEndpoint('linkTelegram', $linkTelegramEndpoint);
128        $this->registerEndpoint('onTelegram', $onTelegramEndpoint);
129        $this->registerEndpoint('startUpload', $startUploadEndpoint);
130        $this->registerEndpoint('updateUpload', $updateUploadEndpoint);
131        $this->registerEndpoint('finishUpload', $finishUploadEndpoint);
132        $this->registerEndpoint('searchEntities', $searchEntitiesEndpoint);
133
134        // Captcha
135
136        $this->registerEndpoint('startCaptcha', $startCaptchaEndpoint);
137        $this->registerEndpoint('decryptEmailToken', $decryptEmailTokenEndpoint);
138
139        // Downloads
140
141        $this->registerEndpoint('createDownload', $createDownloadEndpoint);
142        $this->registerEndpoint('getDownload', $getDownloadEndpoint);
143        $this->registerEndpoint('editDownload', $editDownloadEndpoint);
144        $this->registerEndpoint('updateDownload', $updateDownloadEndpoint);
145        $this->registerEndpoint('deleteDownload', $deleteDownloadEndpoint);
146
147        // Karten
148
149        $this->registerEndpoint('createKarte', $createKarteEndpoint);
150        $this->registerEndpoint('getKarte', $getKarteEndpoint);
151        $this->registerEndpoint('editKarte', $editKarteEndpoint);
152        $this->registerEndpoint('updateKarte', $updateKarteEndpoint);
153        $this->registerEndpoint('deleteKarte', $deleteKarteEndpoint);
154
155        // Links
156
157        $this->registerEndpoint('createLink', $createLinkEndpoint);
158        $this->registerEndpoint('getLink', $getLinkEndpoint);
159        $this->registerEndpoint('editLink', $editLinkEndpoint);
160        $this->registerEndpoint('updateLink', $updateLinkEndpoint);
161        $this->registerEndpoint('deleteLink', $deleteLinkEndpoint);
162
163        // News
164
165        $this->registerEndpoint('createNews', $createNewsEndpoint);
166        $this->registerEndpoint('getNews', $getNewsEndpoint);
167        $this->registerEndpoint('editNews', $editNewsEndpoint);
168        $this->registerEndpoint('updateNews', $updateNewsEndpoint);
169        $this->registerEndpoint('deleteNews', $deleteNewsEndpoint);
170        $this->registerEndpoint('getAuthorInfo', $getAuthorInfoEndpoint);
171        $this->registerEndpoint('listNewsReactions', $listNewsReactionsEndpoint);
172        $this->registerEndpoint('toggleNewsReaction', $toggleNewsReactionEndpoint);
173
174        // Roles
175
176        $this->registerEndpoint('createRole', $createRoleEndpoint);
177        $this->registerEndpoint('getRole', $getRoleEndpoint);
178        $this->registerEndpoint('editRole', $editRoleEndpoint);
179        $this->registerEndpoint('updateRole', $updateRoleEndpoint);
180        $this->registerEndpoint('deleteRole', $deleteRoleEndpoint);
181
182        $this->registerEndpoint('addUserRoleMembership', $addUserRoleMembershipEndpoint);
183        $this->registerEndpoint('removeUserRoleMembership', $removeUserRoleMembershipEndpoint);
184        $this->registerEndpoint('getRoleInfo', $getRoleInfoEndpoint);
185
186        // Runs
187
188        $this->registerEndpoint('createRun', $createRunEndpoint);
189        $this->registerEndpoint('getRun', $getRunEndpoint);
190        $this->registerEndpoint('editRun', $editRunEndpoint);
191        $this->registerEndpoint('updateRun', $updateRunEndpoint);
192        $this->registerEndpoint('deleteRun', $deleteRunEndpoint);
193
194        // Snippets
195
196        $this->registerEndpoint('getSnippet', $getSnippetEndpoint);
197        $this->registerEndpoint('editSnippet', $editSnippetEndpoint);
198        $this->registerEndpoint('updateSnippet', $updateSnippetEndpoint);
199
200        // Fragen & Antworten (FAQ)
201
202        $this->registerEndpoint('createQuestion', $createQuestionEndpoint);
203        $this->registerEndpoint('getQuestion', $getQuestionEndpoint);
204        $this->registerEndpoint('editQuestion', $editQuestionEndpoint);
205        $this->registerEndpoint('updateQuestion', $updateQuestionEndpoint);
206        $this->registerEndpoint('deleteQuestion', $deleteQuestionEndpoint);
207
208        $this->registerEndpoint('createQuestionCategory', $createQuestionCategoryEndpoint);
209        $this->registerEndpoint('getQuestionCategory', $getQuestionCategoryEndpoint);
210        $this->registerEndpoint('editQuestionCategory', $editQuestionCategoryEndpoint);
211        $this->registerEndpoint('updateQuestionCategory', $updateQuestionCategoryEndpoint);
212        $this->registerEndpoint('deleteQuestionCategory', $deleteQuestionCategoryEndpoint);
213
214        // Startseite
215
216        $this->registerEndpoint('createWeeklyPicture', $createWeeklyPictureEndpoint);
217        $this->registerEndpoint('getWeeklyPicture', $getWeeklyPictureEndpoint);
218        $this->registerEndpoint('editWeeklyPicture', $editWeeklyPictureEndpoint);
219        $this->registerEndpoint('updateWeeklyPicture', $updateWeeklyPictureEndpoint);
220        $this->registerEndpoint('deleteWeeklyPicture', $deleteWeeklyPictureEndpoint);
221
222        // Termine
223
224        $this->registerEndpoint('createTermin', $createTerminEndpoint);
225        $this->registerEndpoint('getTermin', $getTerminEndpoint);
226        $this->registerEndpoint('editTermin', $editTerminEndpoint);
227        $this->registerEndpoint('updateTermin', $updateTerminEndpoint);
228        $this->registerEndpoint('deleteTermin', $deleteTerminEndpoint);
229        $this->registerEndpoint('listTerminReactions', $listTerminReactionsEndpoint);
230        $this->registerEndpoint('toggleTerminReaction', $toggleTerminReactionEndpoint);
231
232        // Termin Label
233
234        $this->registerEndpoint('createTerminLabel', $createTerminLabelEndpoint);
235        $this->registerEndpoint('listTerminLabels', $listTerminLabelsEndpoint);
236        $this->registerEndpoint('getTerminLabel', $getTerminLabelEndpoint);
237        $this->registerEndpoint('editTerminLabel', $editTerminLabelEndpoint);
238        $this->registerEndpoint('updateTerminLabel', $updateTerminLabelEndpoint);
239        $this->registerEndpoint('deleteTerminLabel', $deleteTerminLabelEndpoint);
240
241        // Termin Locations
242
243        $this->registerEndpoint('createTerminLocation', $createTerminLocationEndpoint);
244        $this->registerEndpoint('getTerminLocation', $getTerminLocationEndpoint);
245        $this->registerEndpoint('editTerminLocation', $editTerminLocationEndpoint);
246        $this->registerEndpoint('updateTerminLocation', $updateTerminLocationEndpoint);
247        $this->registerEndpoint('deleteTerminLocation', $deleteTerminLocationEndpoint);
248
249        // Termin Templates
250
251        $this->registerEndpoint('createTerminTemplate', $createTerminTemplateEndpoint);
252        $this->registerEndpoint('getTerminTemplate', $getTerminTemplateEndpoint);
253        $this->registerEndpoint('editTerminTemplate', $editTerminTemplateEndpoint);
254        $this->registerEndpoint('updateTerminTemplate', $updateTerminTemplateEndpoint);
255        $this->registerEndpoint('deleteTerminTemplate', $deleteTerminTemplateEndpoint);
256
257        // Users
258
259        $this->registerEndpoint('createUser', $createUserEndpoint);
260        $this->registerEndpoint('getUser', $getUserEndpoint);
261        $this->registerEndpoint('editUser', $editUserEndpoint);
262        $this->registerEndpoint('updateUser', $updateUserEndpoint);
263        $this->registerEndpoint('deleteUser', $deleteUserEndpoint);
264        $this->registerEndpoint('getUserInfo', $getUserInfoEndpoint);
265
266        $olz_apps->registerAllEndpoints($this);
267    }
268
269    public function generate(): void {
270        file_put_contents(
271            __DIR__.'/client/generated_olz_api_types.ts',
272            $this->getTypeScriptDefinition('OlzApi')
273        );
274
275        echo "\nOLZ API client generated.\n";
276    }
277}