Terarea  2
The automation project
Loading...
Searching...
No Matches
endpoints_routes.py
Go to the documentation of this file.
1"""_summary_
2 This is the file in charge of storing the endpoints_initialised ready to be imported into the server class.
3"""
4from display_tty import Disp, TOML_CONF, FILE_DESCRIPTOR, SAVE_TO_FILE, FILE_NAME
5from .runtime_data import RuntimeData
6from .password_handling import PasswordHandling
7from .endpoints import Bonus, UserEndpoints, Services, Mandatory, Applets
8
9
11 """_summary_
12 """
13
14 def __init__(self, runtime_data: RuntimeData, success: int = 0, error: int = 84, debug: bool = False) -> None:
15 """_summary_
16
17 Args:
18 runtime_data (RuntimeData): _description_
19 success (int, optional): _description_. Defaults to 0.
20 error (int, optional): _description_. Defaults to 84.
21 debug (bool, optional): _description_. Defaults to False.
22 """
23 self.debug: bool = debug
24 self.success: int = success
25 self.error: int = error
26 self.runtime_data_initialised: RuntimeData = runtime_data
28 self.error,
29 self.success,
30 self.debug
31 )
32 self.disp: Disp = Disp(
33 TOML_CONF,
34 SAVE_TO_FILE,
35 FILE_NAME,
36 FILE_DESCRIPTOR,
37 debug=self.debug,
38 logger=self.__class__.__name__
39 )
40 # ------------------- Initialize endpoints sub-classes ------------------
41 self.bonus: Bonus = Bonus(
42 runtime_data=runtime_data,
43 success=success,
44 error=error,
45 debug=debug
46 )
47 self.mandatory: Mandatory = Mandatory(
48 runtime_data=runtime_data,
49 success=success,
50 error=error,
51 debug=debug
52 )
53 self.user_endpoints: UserEndpoints = UserEndpoints(
54 runtime_data=runtime_data,
55 success=success,
56 error=error,
57 debug=debug
58 )
59 self.services: Services = Services(
60 runtime_data=self.runtime_data_initialised,
61 success=self.success,
62 error=self.error,
63 debug=self.debug
64 )
65 self.applets: Applets = Applets(
66 runtime_data=runtime_data,
67 success=success,
68 error=error,
69 debug=debug
70 )
71
72 def inject_routes(self) -> None:
73 """_summary_
74 """
75 # Bonus routes
76 self.runtime_data_initialised.paths_initialised.add_path(
77 "", self.bonus.get_welcome, [
78 "GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"
79 ]
80 )
81 self.runtime_data_initialised.paths_initialised.add_path(
82 "/", self.bonus.get_welcome, [
83 "GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"
84 ]
85 )
86 self.runtime_data_initialised.paths_initialised.add_path(
87 "/api/v1/", self.bonus.get_welcome, "GET"
88 )
89 self.runtime_data_initialised.paths_initialised.add_path(
90 "/api/v1/bucket_names", self.bonus.get_s3_bucket_names, "GET"
91 )
92 self.runtime_data_initialised.paths_initialised.add_path(
93 "/api/v1/get_table", self.bonus.get_table, "GET"
94 )
95 self.runtime_data_initialised.paths_initialised.add_path(
96 "/api/v1/stop", self.bonus.post_stop_server, "PUT"
97 )
98 self.runtime_data_initialised.paths_initialised.add_path(
99 "/api/v1/trigger_action/{id}", self.bonus.trigger_endpoint, "GET"
100 )
101
102 # Mandatory routes
103 self.runtime_data_initialised.paths_initialised.add_path(
104 "/about.json", self.mandatory.get_about, "GET"
105 )
106
107 # Authentication routes
108 self.runtime_data_initialised.paths_initialised.add_path(
109 "/api/v1/login", self.user_endpoints.post_login, "POST"
110 )
111 self.runtime_data_initialised.paths_initialised.add_path(
112 "/api/v1/register", self.user_endpoints.post_register, "POST"
113 )
114 self.runtime_data_initialised.paths_initialised.add_path(
115 "/api/v1/send_email_verification", self.user_endpoints.post_send_email_verification, "POST"
116 )
117 self.runtime_data_initialised.paths_initialised.add_path(
118 "/api/v1/reset_password", self.user_endpoints.put_reset_password, "PATCH"
119 )
120
121 # Oauth routes
122 self.runtime_data_initialised.paths_initialised.add_path(
123 "/api/v1/oauth/login", self.runtime_data_initialised.oauth_authentication_initialised.oauth_login, "POST"
124 )
125 self.runtime_data_initialised.paths_initialised.add_path(
126 "/api/v1/oauth/callback", self.runtime_data_initialised.oauth_authentication_initialised.oauth_callback, "POST"
127 )
128 self.runtime_data_initialised.paths_initialised.add_path(
129 "/api/v1/oauth/{provider}", self.runtime_data_initialised.oauth_authentication_initialised.add_oauth_provider, "POST"
130 )
131 self.runtime_data_initialised.paths_initialised.add_path(
132 "/api/v1/oauth/{provider}", self.runtime_data_initialised.oauth_authentication_initialised.update_oauth_provider_data, "PUT"
133 )
134 self.runtime_data_initialised.paths_initialised.add_path(
135 "/api/v1/oauth/{provider}", self.runtime_data_initialised.oauth_authentication_initialised.patch_oauth_provider_data, "PATCH"
136 )
137 self.runtime_data_initialised.paths_initialised.add_path(
138 "/api/v1/oauth/{provider}", self.runtime_data_initialised.oauth_authentication_initialised.delete_oauth_provider, "DELETE"
139 )
140
141 # Users routes
142 self.runtime_data_initialised.paths_initialised.add_path(
143 "/api/v1/user", self.user_endpoints.patch_user, "PATCH"
144 )
145 self.runtime_data_initialised.paths_initialised.add_path(
146 "/api/v1/user", self.user_endpoints.put_user, "PUT"
147 )
148 self.runtime_data_initialised.paths_initialised.add_path(
149 "/api/v1/user", self.user_endpoints.get_user, "GET"
150 )
151 self.runtime_data_initialised.paths_initialised.add_path(
152 "/api/v1/user", self.user_endpoints.delete_user, "DELETE"
153 )
154 self.runtime_data_initialised.paths_initialised.add_path(
155 "/api/v1/user_favicon", self.user_endpoints.put_user_favicon, "PUT"
156 )
157 self.runtime_data_initialised.paths_initialised.add_path(
158 "/api/v1/user_favicon", self.user_endpoints.delete_user_favicon, "DELETE"
159 )
160 self.runtime_data_initialised.paths_initialised.add_path(
161 "/api/v1/logout", self.user_endpoints.post_logout, "POST"
162 )
163 self.runtime_data_initialised.paths_initialised.add_path(
164 "/api/v1/user_id", self.user_endpoints.get_user_id, "GET"
165 )
166
167 # Services routes
168 self.runtime_data_initialised.paths_initialised.add_path(
169 "/api/v1/services", self.services.get_services, "GET"
170 )
171 self.runtime_data_initialised.paths_initialised.add_path(
172 "/api/v1/service/{service_id}", self.services.get_service_by_id, "GET"
173 )
174 self.runtime_data_initialised.paths_initialised.add_path(
175 "/api/v1/services/{tags}", self.services.get_services_by_tag, "GET"
176 )
177 self.runtime_data_initialised.paths_initialised.add_path(
178 "/api/v1/recent_services", self.services.get_recent_services, "GET"
179 )
180 self.runtime_data_initialised.paths_initialised.add_path(
181 "/api/v1/service/{name}", self.services.create_service, "POST"
182 )
183 self.runtime_data_initialised.paths_initialised.add_path(
184 "/api/v1/service/{service_id}", self.services.update_service, "PUT"
185 )
186 self.runtime_data_initialised.paths_initialised.add_path(
187 "/api/v1/service/{service_id}", self.services.patch_service, "PATCH"
188 )
189 self.runtime_data_initialised.paths_initialised.add_path(
190 "/api/v1/service_id/name/{name}", self.services.get_service_id_by_name, "GET"
191 )
192 self.runtime_data_initialised.paths_initialised.add_path(
193 "/api/v1/service/{service_id}", self.services.delete_service, "DELETE"
194 )
195
196 # Applets routes
197 self.runtime_data_initialised.paths_initialised.add_path(
198 "/api/v1/my_applet/{applet_id}", self.applets.get_applet_by_id, "GET"
199 )
200 self.runtime_data_initialised.paths_initialised.add_path(
201 "/api/v1/my_applets", self.applets.get_my_applets, "GET"
202 )
203 self.runtime_data_initialised.paths_initialised.add_path(
204 "/api/v1/my_applets/{tags}", self.applets.get_my_applets_by_tags, "GET"
205 )
206 self.runtime_data_initialised.paths_initialised.add_path(
207 "/api/v1/my_applet", self.applets.create_applet, "POST"
208 )
209 self.runtime_data_initialised.paths_initialised.add_path(
210 "/api/v1/my_applet/{applet_id}", self.applets.put_applet_by_id, "PUT"
211 )
212 self.runtime_data_initialised.paths_initialised.add_path(
213 "/api/v1/triggers", self.applets.get_triggers, "GET"
214 )
215 self.runtime_data_initialised.paths_initialised.add_path(
216 "/api/v1/reactions", self.applets.get_reactions, "GET"
217 )
218 self.runtime_data_initialised.paths_initialised.add_path(
219 "/api/v1/my_applet/{applet_id}", self.applets.patch_applet_by_id, "PATCH"
220 )
221 self.runtime_data_initialised.paths_initialised.add_path(
222 "/api/v1/triggers_services", self.applets.get_triggers_services, "GET"
223 )
224 self.runtime_data_initialised.paths_initialised.add_path(
225 "/api/v1/reactions_services", self.applets.get_reactions_services, "GET"
226 )
227 self.runtime_data_initialised.paths_initialised.add_path(
228 "/api/v1/triggers/service/{service_id}", self.applets.get_triggers_by_service_id, "GET"
229 )
230 self.runtime_data_initialised.paths_initialised.add_path(
231 "/api/v1/reactions/service/{service_id}", self.applets.get_reactions_by_service_id, "GET"
232 )
233 self.runtime_data_initialised.paths_initialised.add_path(
234 "/api/v1/my_applet/{applet_id}", self.applets.delete_my_applet_by_id, "DELETE"
235 )
None __init__(self, RuntimeData runtime_data, int success=0, int error=84, bool debug=False)