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