Commit 2f1bd981 authored by valdi's avatar valdi

pisah api

parent 4dbe4b83
import 'dart:convert';
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:movie_app/config.dart';
import 'package:movie_app/main.dart';
class ApiPopular {
final String id;
final String title;
final String poster_path;
final String vote_average;
ApiPopular(this.id, this.title, this.poster_path, this.vote_average);
factory ApiPopular.createPopular(Map<String, dynamic> json) {
return ApiPopular(json['id'].toString(), json['title'], json['poster_path'],
json['vote_average'].toString());
}
static Future<List<ApiPopular>> GetPopular() async {
String apiUrl = "https://api.themoviedb.org/3/movie/popular?api_key=" +
apiKey +
"&language=en-US&page=1";
var apiResult = await http.get(Uri.parse(apiUrl));
var jsonObject = jsonDecode(apiResult.body);
List<dynamic> listPopular = (jsonObject as Map<String, dynamic>)['results'];
List<ApiPopular> populars = [];
for (int i = 0; i < listPopular.length; i++)
populars.add(ApiPopular.createPopular(listPopular[i]));
return populars;
}
}
class ApiNowPlaing {
final String id;
final String title;
final String poster_path;
final String vote_average;
ApiNowPlaing(this.id, this.title, this.poster_path, this.vote_average);
factory ApiNowPlaing.createNowPlaying(Map<String, dynamic> json) {
return ApiNowPlaing(json['id'].toString(), json['title'],
json['poster_path'], json['vote_average'].toString());
}
static Future<List<ApiNowPlaing>> GetNowPlaying() async {
String apiUrl = "https://api.themoviedb.org/3/movie/now_playing?api_key=" +
apiKey +
"&language=en-US&page=1";
var apiResult = await http.get(Uri.parse(apiUrl));
var jsonObject = jsonDecode(apiResult.body);
List<dynamic> listNowPlaying =
(jsonObject as Map<String, dynamic>)['results'];
List<ApiNowPlaing> nowplayings = [];
for (int i = 0; i < listNowPlaying.length; i++)
nowplayings.add(ApiNowPlaing.createNowPlaying(listNowPlaying[i]));
return nowplayings;
}
}
......@@ -4,6 +4,7 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:movie_app/config.dart';
import 'package:movie_app/api.dart';
import 'package:movie_app/main.dart';
......@@ -18,28 +19,42 @@ class _MainPageState extends State<MainPage> {
var _Popular = [];
var _nowPlaying = [];
void GetPopular() async {
var response = await http.get(Uri.parse(
"https://api.themoviedb.org/3/movie/popular?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1"));
// void GetPopular() async {
// var response = await http.get(Uri.parse(
// "https://api.themoviedb.org/3/movie/popular?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1"));
// var jsonObject = jsonDecode(response.body);
// List<dynamic> listPopular = (jsonObject as Map<String, dynamic>)['results'];
var jsonObject = jsonDecode(response.body);
List<dynamic> listPopular = (jsonObject as Map<String, dynamic>)['results'];
// setState(() {
// _Popular = listPopular;
// });
// }
void GetPopular() async {
var apiPopular = await ApiPopular.GetPopular();
setState(() {
_Popular = listPopular;
_Popular = apiPopular;
});
}
void GetNowPlaying() async {
var response = await http.get(Uri.parse(
"https://api.themoviedb.org/3/movie/now_playing?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1"));
// void GetNowPlaying() async {
// var response = await http.get(Uri.parse(
// "https://api.themoviedb.org/3/movie/now_playing?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1"));
// var jsonObject = jsonDecode(response.body);
// List<dynamic> listNowPlaying =
// (jsonObject as Map<String, dynamic>)['results'];
var jsonObject = jsonDecode(response.body);
List<dynamic> listNowPlaying =
(jsonObject as Map<String, dynamic>)['results'];
// setState(() {
// _nowPlaying = listNowPlaying;
// });
// }
void GetNowPlaying() async {
var apiNowPlaying = await ApiNowPlaing.GetNowPlaying();
setState(() {
_nowPlaying = listNowPlaying;
_nowPlaying = apiNowPlaying;
});
}
......@@ -91,7 +106,6 @@ class _MainPageState extends State<MainPage> {
borderRadius: BorderRadius.circular(20)),
margin: EdgeInsets.fromLTRB(10, 30, 10, 30),
padding: EdgeInsets.fromLTRB(10, 5, 5, 5),
// ignore: prefer_const_constructors
child: TextField(
style: TextStyle(color: Color(0xFFD2D3D8)),
decoration: InputDecoration(
......@@ -135,10 +149,10 @@ class _MainPageState extends State<MainPage> {
for (int i = 0; i < _Popular.length; i++)
CardPopular(
"https://image.tmdb.org/t/p/w500" +
_Popular[i]['poster_path'],
_Popular[i]['title'],
_Popular[i]['vote_average'].toString(),
_Popular[i]['id'].toString()),
_Popular[i].poster_path,
_Popular[i].title,
_Popular[i].vote_average.toString(),
_Popular[i].id.toString()),
],
),
),
......@@ -172,10 +186,10 @@ class _MainPageState extends State<MainPage> {
for (int i = 0; i < _nowPlaying.length; i++)
CardPopular(
"https://image.tmdb.org/t/p/w500" +
_nowPlaying[i]['poster_path'],
_nowPlaying[i]['title'],
_nowPlaying[i]['vote_average'].toString(),
_nowPlaying[i]['id'].toString()),
_nowPlaying[i].poster_path,
_nowPlaying[i].title,
_nowPlaying[i].vote_average.toString(),
_nowPlaying[i].id.toString()),
],
),
),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment