Coverage for src\utility\endpoints.py: 100%
50 statements
« prev ^ index » next coverage.py v7.10.1, created at 2025-10-19 21:13 +0800
« prev ^ index » next coverage.py v7.10.1, created at 2025-10-19 21:13 +0800
1from enum import Enum
2from pydantic import BaseModel
3from src.utility.utils import EndpointType, ViewType
6class EndpointModel(BaseModel):
7 path: str
8 type: EndpointType
9 view: ViewType
12class Endpoint(Enum):
13 SEARCH_ANIMES = EndpointModel(
14 path="search/animes",
15 type=EndpointType.QUERY,
16 view=ViewType.ANIME
17 )
19 INFO_ANIMES = EndpointModel(
20 path="animes/{anime_series_id}/{anime_season_id}",
21 type=EndpointType.PATH,
22 view=ViewType.ANIME
23 )
25 REVIEW_ANIMES = EndpointModel(
26 path="animes/{anime_series_id}/{anime_season_id}",
27 type=EndpointType.COMBINED,
28 view=ViewType.ANIME
29 )
31 REVIEW_SPECIFIC_ANIMES = EndpointModel(
32 path="animes/{anime_series_id}/{anime_season_id}/reviews/{review_id}",
33 type=EndpointType.PATH,
34 view=ViewType.ANIME
35 )
37 LIST_ANIMES_TRENDING = EndpointModel(
38 path="list-anime/trend",
39 type=EndpointType.QUERY,
40 view=ViewType.ANIME
41 )
43 LIST_ANIMES_VOD = EndpointModel(
44 path="list-anime/vod/{vod_name}",
45 type=EndpointType.COMBINED,
46 view=ViewType.ANIME
47 )
49 LIST_ANIMES_YEAR_SERIES = EndpointModel(
50 path="list-anime/year/{year_series}s",
51 type=EndpointType.COMBINED,
52 view=ViewType.ANIME
53 )
55 LIST_ANIMES_YEAR_SPECIFIC = EndpointModel(
56 path="list-anime/year/{year_series}s/{year}",
57 type=EndpointType.COMBINED,
58 view=ViewType.ANIME
59 )
61 LIST_ANIMES_YEAR_SEASON = EndpointModel(
62 path="list-anime/release_year/{year}/{season_id}",
63 type=EndpointType.COMBINED,
64 view=ViewType.ANIME
65 )
67 LIST_ANIMES_COMPANY = EndpointModel(
68 path="list-anime/company/{company_id}",
69 type=EndpointType.COMBINED,
70 view=ViewType.ANIME
71 )
73 LIST_ANIMES_TAG = EndpointModel(
74 path="list-anime/tag/{tag}",
75 type=EndpointType.COMBINED,
76 view=ViewType.ANIME
77 )
79 LIST_ANIMES_PERSON = EndpointModel(
80 path="people/{person_id}/animes",
81 type=EndpointType.COMBINED,
82 view=ViewType.ANIME
83 )
85 SEARCH_DRAMAS = EndpointModel(
86 path="search/dramas",
87 type=EndpointType.QUERY,
88 view=ViewType.DRAMA
89 )
91 INFO_DRAMAS = EndpointModel(
92 path="dramas/{drama_series_id}/{drama_season_id}",
93 type=EndpointType.PATH,
94 view=ViewType.DRAMA
95 )
97 REVIEW_DRAMAS = EndpointModel(
98 path="dramas/{drama_series_id}/{drama_season_id}",
99 type=EndpointType.COMBINED,
100 view=ViewType.DRAMA
101 )
103 REVIEW_SPECIFIC_DRAMAS = EndpointModel(
104 path="dramas/{drama_series_id}/{drama_season_id}/reviews/{review_id}",
105 type=EndpointType.PATH,
106 view=ViewType.DRAMA
107 )
109 LIST_DRAMAS_TRENDING = EndpointModel(
110 path="list-drama/trend",
111 type=EndpointType.QUERY,
112 view=ViewType.DRAMA
113 )
115 LIST_DRAMAS_VOD = EndpointModel(
116 path="list-drama/vod/{vod_name}",
117 type=EndpointType.COMBINED,
118 view=ViewType.DRAMA
119 )
121 LIST_DRAMAS_YEAR_SERIES = EndpointModel(
122 path="list-drama/year/{year_series}s",
123 type=EndpointType.COMBINED,
124 view=ViewType.DRAMA
125 )
127 LIST_DRAMAS_YEAR_SPECIFIC = EndpointModel(
128 path="list-drama/year/{year_series}s/{year}",
129 type=EndpointType.COMBINED,
130 view=ViewType.DRAMA
131 )
133 LIST_DRAMAS_COUNTRY = EndpointModel(
134 path="list-drama/country/{country_id}",
135 type=EndpointType.COMBINED,
136 view=ViewType.DRAMA
137 )
139 LIST_DRAMAS_GENRE = EndpointModel(
140 path="list-drama/genre/{genre_id}",
141 type=EndpointType.COMBINED,
142 view=ViewType.DRAMA
143 )
145 LIST_DRAMAS_TAG = EndpointModel(
146 path="list-drama/tag/{tag}",
147 type=EndpointType.COMBINED,
148 view=ViewType.DRAMA
149 )
151 LIST_DRAMAS_PERSON = EndpointModel(
152 path="people/{person_id}/dramas",
153 type=EndpointType.COMBINED,
154 view=ViewType.DRAMA
155 )
157 SEARCH_MOVIES = EndpointModel(
158 path="search/movies",
159 type=EndpointType.QUERY,
160 view=ViewType.MOVIE
161 )
163 INFO_MOVIES = EndpointModel(
164 path="movies/{movie_id}",
165 type=EndpointType.PATH,
166 view=ViewType.MOVIE
167 )
169 REVIEW_MOVIES = EndpointModel(
170 path="movies/{movie_id}",
171 type=EndpointType.COMBINED,
172 view=ViewType.MOVIE
173 )
175 REVIEW_SPECIFIC_MOVIES = EndpointModel(
176 path="movies/{movie_id}/reviews/{review_id}",
177 type=EndpointType.PATH,
178 view=ViewType.MOVIE
179 )
181 LIST_MOVIES_NOW = EndpointModel(
182 path="list/now",
183 type=EndpointType.QUERY,
184 view=ViewType.MOVIE
185 )
187 LIST_MOVIES_COMING = EndpointModel(
188 path="list/coming",
189 type=EndpointType.QUERY,
190 view=ViewType.MOVIE
191 )
193 LIST_MOVIES_UPCOMING = EndpointModel(
194 path="list/upcoming",
195 type=EndpointType.QUERY,
196 view=ViewType.MOVIE
197 )
199 LIST_MOVIES_TRENDING = EndpointModel(
200 path="list/trend",
201 type=EndpointType.QUERY,
202 view=ViewType.MOVIE
203 )
205 LIST_MOVIES_VOD = EndpointModel(
206 path="list/vod/{vod_name}",
207 type=EndpointType.COMBINED,
208 view=ViewType.MOVIE
209 )
211 LIST_MOVIES_AWARD = EndpointModel(
212 path="list/award/{award_id}",
213 type=EndpointType.COMBINED,
214 view=ViewType.MOVIE
215 )
217 LIST_MOVIES_YEAR_SERIES = EndpointModel(
218 path="list/year/{year_series}s",
219 type=EndpointType.COMBINED,
220 view=ViewType.MOVIE
221 )
223 LIST_MOVIES_YEAR_SPECIFIC = EndpointModel(
224 path="list/year/{year_series}s/{year}",
225 type=EndpointType.COMBINED,
226 view=ViewType.MOVIE
227 )
229 LIST_MOVIES_COUNTRY = EndpointModel(
230 path="list/country/{country_id}",
231 type=EndpointType.COMBINED,
232 view=ViewType.MOVIE
233 )
235 LIST_MOVIES_GENRE = EndpointModel(
236 path="list/genre/{genre_id}",
237 type=EndpointType.COMBINED,
238 view=ViewType.MOVIE
239 )
241 LIST_MOVIES_DISTRIBUTOR = EndpointModel(
242 path="list/distributor/{distributor_id}",
243 type=EndpointType.COMBINED,
244 view=ViewType.MOVIE
245 )
247 LIST_MOVIES_SERIES = EndpointModel(
248 path="list/series/{series_id}",
249 type=EndpointType.COMBINED,
250 view=ViewType.MOVIE
251 )
253 LIST_MOVIES_TAG = EndpointModel(
254 path="list/tag/{tag}",
255 type=EndpointType.COMBINED,
256 view=ViewType.MOVIE
257 )
259 LIST_MOVIES_PERSON = EndpointModel(
260 path="people/{person_id}/movies",
261 type=EndpointType.COMBINED,
262 view=ViewType.MOVIE
263 )