-
Notifications
You must be signed in to change notification settings - Fork 0
/
movieService.dart
73 lines (65 loc) · 2.59 KB
/
movieService.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import 'dart:convert';
import 'dart:developer';
import 'package:http/http.dart' as http;
import 'package:movie_app/core/constant/apiConstants.dart';
import 'package:movie_app/feature/actorDetailPage/model/actorData_model.dart';
import 'package:movie_app/feature/actorDetailPage/model/actorPersonalInfo_model.dart';
import 'package:movie_app/feature/home/model/movie_model.dart';
import 'package:movie_app/feature/movieDetailPage/model/actorsMovie_model.dart';
import 'package:movie_app/feature/movieDetailPage/model/movieVideos_model.dart';
import 'package:movie_app/feature/movieDetailPage/model/similarMovies.dart';
class MovieService {
Future<List> getMovieLists() async {
try {
final results = await Future.wait([
http.get(Uri.parse(ApiConstants.populerMovieUrl)),
http.get(Uri.parse(ApiConstants.upComingMovie)),
http.get(Uri.parse(ApiConstants.topRatedMovie)),
]);
List<Movie?> populerMovie = [];
if (results[0].statusCode == 200) {
populerMovie.add(Movie.fromJson(jsonDecode(results[0].body)));
if (results[1].statusCode == 200) {
populerMovie.add(Movie.fromJson(jsonDecode(results[1].body)));
if (results[2].statusCode == 200) {
populerMovie
.add(Movie.fromJson(jsonDecode(results[2].body)));
return populerMovie;
}
}
}
} catch (e) {
log(e.toString());
}
return [];
}
Future<List> getMovieInfo(String movieId) async {
final results = await Future.wait([
http.get(Uri.parse(ApiConstants().movieCasts(movieId))),
http.get(Uri.parse(ApiConstants().moviesVideos(movieId))),
http.get(Uri.parse(ApiConstants().similarMovies(movieId)))
]);
ActorData? actors = ActorData.fromJson(jsonDecode(results[0].body));
MovieVideos? videos = MovieVideos.fromJson(jsonDecode(results[1].body));
SimilarMovies? similarMovies =
SimilarMovies.fromJson(jsonDecode(results[2].body));
// if (response.statusCode == 200) {
// return model;
// }
return [actors, videos, similarMovies];
}
Future<List> getActorsInfo(String personId) async {
final results = await Future.wait([
http.get(Uri.parse(ApiConstants().actorsInfo(personId))),
http.get(Uri.parse(ApiConstants().actorMovies(personId))),
]);
ActorPersonalInfo? actorInfo =
ActorPersonalInfo.fromJson(jsonDecode(results[0].body));
ActorMovies? actorMovies =
ActorMovies.fromJson(jsonDecode(results[1].body));
// if (results.statusCode == 200) {
// return model;
// }
return [actorInfo, actorMovies];
}
}