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

1from enum import Enum 

2from pydantic import BaseModel 

3from src.utility.utils import EndpointType, ViewType 

4 

5 

6class EndpointModel(BaseModel): 

7 path: str 

8 type: EndpointType 

9 view: ViewType 

10 

11 

12class Endpoint(Enum): 

13 SEARCH_ANIMES = EndpointModel( 

14 path="search/animes", 

15 type=EndpointType.QUERY, 

16 view=ViewType.ANIME 

17 ) 

18 

19 INFO_ANIMES = EndpointModel( 

20 path="animes/{anime_series_id}/{anime_season_id}", 

21 type=EndpointType.PATH, 

22 view=ViewType.ANIME 

23 ) 

24 

25 REVIEW_ANIMES = EndpointModel( 

26 path="animes/{anime_series_id}/{anime_season_id}", 

27 type=EndpointType.COMBINED, 

28 view=ViewType.ANIME 

29 ) 

30 

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 ) 

36 

37 LIST_ANIMES_TRENDING = EndpointModel( 

38 path="list-anime/trend", 

39 type=EndpointType.QUERY, 

40 view=ViewType.ANIME 

41 ) 

42 

43 LIST_ANIMES_VOD = EndpointModel( 

44 path="list-anime/vod/{vod_name}", 

45 type=EndpointType.COMBINED, 

46 view=ViewType.ANIME 

47 ) 

48 

49 LIST_ANIMES_YEAR_SERIES = EndpointModel( 

50 path="list-anime/year/{year_series}s", 

51 type=EndpointType.COMBINED, 

52 view=ViewType.ANIME 

53 ) 

54 

55 LIST_ANIMES_YEAR_SPECIFIC = EndpointModel( 

56 path="list-anime/year/{year_series}s/{year}", 

57 type=EndpointType.COMBINED, 

58 view=ViewType.ANIME 

59 ) 

60 

61 LIST_ANIMES_YEAR_SEASON = EndpointModel( 

62 path="list-anime/release_year/{year}/{season_id}", 

63 type=EndpointType.COMBINED, 

64 view=ViewType.ANIME 

65 ) 

66 

67 LIST_ANIMES_COMPANY = EndpointModel( 

68 path="list-anime/company/{company_id}", 

69 type=EndpointType.COMBINED, 

70 view=ViewType.ANIME 

71 ) 

72 

73 LIST_ANIMES_TAG = EndpointModel( 

74 path="list-anime/tag/{tag}", 

75 type=EndpointType.COMBINED, 

76 view=ViewType.ANIME 

77 ) 

78 

79 LIST_ANIMES_PERSON = EndpointModel( 

80 path="people/{person_id}/animes", 

81 type=EndpointType.COMBINED, 

82 view=ViewType.ANIME 

83 ) 

84 

85 SEARCH_DRAMAS = EndpointModel( 

86 path="search/dramas", 

87 type=EndpointType.QUERY, 

88 view=ViewType.DRAMA 

89 ) 

90 

91 INFO_DRAMAS = EndpointModel( 

92 path="dramas/{drama_series_id}/{drama_season_id}", 

93 type=EndpointType.PATH, 

94 view=ViewType.DRAMA 

95 ) 

96 

97 REVIEW_DRAMAS = EndpointModel( 

98 path="dramas/{drama_series_id}/{drama_season_id}", 

99 type=EndpointType.COMBINED, 

100 view=ViewType.DRAMA 

101 ) 

102 

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 ) 

108 

109 LIST_DRAMAS_TRENDING = EndpointModel( 

110 path="list-drama/trend", 

111 type=EndpointType.QUERY, 

112 view=ViewType.DRAMA 

113 ) 

114 

115 LIST_DRAMAS_VOD = EndpointModel( 

116 path="list-drama/vod/{vod_name}", 

117 type=EndpointType.COMBINED, 

118 view=ViewType.DRAMA 

119 ) 

120 

121 LIST_DRAMAS_YEAR_SERIES = EndpointModel( 

122 path="list-drama/year/{year_series}s", 

123 type=EndpointType.COMBINED, 

124 view=ViewType.DRAMA 

125 ) 

126 

127 LIST_DRAMAS_YEAR_SPECIFIC = EndpointModel( 

128 path="list-drama/year/{year_series}s/{year}", 

129 type=EndpointType.COMBINED, 

130 view=ViewType.DRAMA 

131 ) 

132 

133 LIST_DRAMAS_COUNTRY = EndpointModel( 

134 path="list-drama/country/{country_id}", 

135 type=EndpointType.COMBINED, 

136 view=ViewType.DRAMA 

137 ) 

138 

139 LIST_DRAMAS_GENRE = EndpointModel( 

140 path="list-drama/genre/{genre_id}", 

141 type=EndpointType.COMBINED, 

142 view=ViewType.DRAMA 

143 ) 

144 

145 LIST_DRAMAS_TAG = EndpointModel( 

146 path="list-drama/tag/{tag}", 

147 type=EndpointType.COMBINED, 

148 view=ViewType.DRAMA 

149 ) 

150 

151 LIST_DRAMAS_PERSON = EndpointModel( 

152 path="people/{person_id}/dramas", 

153 type=EndpointType.COMBINED, 

154 view=ViewType.DRAMA 

155 ) 

156 

157 SEARCH_MOVIES = EndpointModel( 

158 path="search/movies", 

159 type=EndpointType.QUERY, 

160 view=ViewType.MOVIE 

161 ) 

162 

163 INFO_MOVIES = EndpointModel( 

164 path="movies/{movie_id}", 

165 type=EndpointType.PATH, 

166 view=ViewType.MOVIE 

167 ) 

168 

169 REVIEW_MOVIES = EndpointModel( 

170 path="movies/{movie_id}", 

171 type=EndpointType.COMBINED, 

172 view=ViewType.MOVIE 

173 ) 

174 

175 REVIEW_SPECIFIC_MOVIES = EndpointModel( 

176 path="movies/{movie_id}/reviews/{review_id}", 

177 type=EndpointType.PATH, 

178 view=ViewType.MOVIE 

179 ) 

180 

181 LIST_MOVIES_NOW = EndpointModel( 

182 path="list/now", 

183 type=EndpointType.QUERY, 

184 view=ViewType.MOVIE 

185 ) 

186 

187 LIST_MOVIES_COMING = EndpointModel( 

188 path="list/coming", 

189 type=EndpointType.QUERY, 

190 view=ViewType.MOVIE 

191 ) 

192 

193 LIST_MOVIES_UPCOMING = EndpointModel( 

194 path="list/upcoming", 

195 type=EndpointType.QUERY, 

196 view=ViewType.MOVIE 

197 ) 

198 

199 LIST_MOVIES_TRENDING = EndpointModel( 

200 path="list/trend", 

201 type=EndpointType.QUERY, 

202 view=ViewType.MOVIE 

203 ) 

204 

205 LIST_MOVIES_VOD = EndpointModel( 

206 path="list/vod/{vod_name}", 

207 type=EndpointType.COMBINED, 

208 view=ViewType.MOVIE 

209 ) 

210 

211 LIST_MOVIES_AWARD = EndpointModel( 

212 path="list/award/{award_id}", 

213 type=EndpointType.COMBINED, 

214 view=ViewType.MOVIE 

215 ) 

216 

217 LIST_MOVIES_YEAR_SERIES = EndpointModel( 

218 path="list/year/{year_series}s", 

219 type=EndpointType.COMBINED, 

220 view=ViewType.MOVIE 

221 ) 

222 

223 LIST_MOVIES_YEAR_SPECIFIC = EndpointModel( 

224 path="list/year/{year_series}s/{year}", 

225 type=EndpointType.COMBINED, 

226 view=ViewType.MOVIE 

227 ) 

228 

229 LIST_MOVIES_COUNTRY = EndpointModel( 

230 path="list/country/{country_id}", 

231 type=EndpointType.COMBINED, 

232 view=ViewType.MOVIE 

233 ) 

234 

235 LIST_MOVIES_GENRE = EndpointModel( 

236 path="list/genre/{genre_id}", 

237 type=EndpointType.COMBINED, 

238 view=ViewType.MOVIE 

239 ) 

240 

241 LIST_MOVIES_DISTRIBUTOR = EndpointModel( 

242 path="list/distributor/{distributor_id}", 

243 type=EndpointType.COMBINED, 

244 view=ViewType.MOVIE 

245 ) 

246 

247 LIST_MOVIES_SERIES = EndpointModel( 

248 path="list/series/{series_id}", 

249 type=EndpointType.COMBINED, 

250 view=ViewType.MOVIE 

251 ) 

252 

253 LIST_MOVIES_TAG = EndpointModel( 

254 path="list/tag/{tag}", 

255 type=EndpointType.COMBINED, 

256 view=ViewType.MOVIE 

257 ) 

258 

259 LIST_MOVIES_PERSON = EndpointModel( 

260 path="people/{person_id}/movies", 

261 type=EndpointType.COMBINED, 

262 view=ViewType.MOVIE 

263 )