main Page
@override Widget build(BuildContext context) {
return BlocProvider(create: (context)=> ShopCubit()..getHomeData(),
child: BlocConsumer<ShopCubit,ShopStates>(
listener: (context,state){},
builder: (context,state){
return MaterialApp(
theme: lightTheme,
darkTheme: darkTheme,
themeMode: ThemeMode.light,
home: stateWidget,
);
},
),);
}
cubit page
HomeModel homeModel;
void getHomeData() {
emit(ShopLoadingDataState());
DioHelper.getData(url: home, token: token).then((value) {
homeModel = HomeModel.fromJson(value.data);
print(homeModel.toString());
print(homeModel.status);
emit(ShopSuccessDataState());
}).catchError((error) {
print('Error found Here $error');
emit(ShopErrorDataState());
});
}
DioHelper
import 'package:dio/dio.dart'; import 'package:flutter/material.dart';
class DioHelper {
static Dio dio; static init() {
dio = Dio(BaseOptions(
baseUrl: 'https://student.valuxapps.com/api/',
receiveDataWhenStatusError: true,
));
} static Future getData({
@required String url,
Map<String, dynamic> query,
String lang = 'en',
String token,
}) async { dio.options.headers = {
'Content-Type': 'application/json',
'lang': lang,
'Authorization': token,
};
return await dio.get(url, queryParameters: query);
}
static Future postData({
@required String url,
Map<String, dynamic> query,
@required Map<String, dynamic> data,
String lang = 'en',
String token,
}) async {
dio.options.headers = {
'Content-Type': 'application/json',
'lang': lang,
'Authorization': token,
};
return dio.post(
url,
data: data,
queryParameters: query,
);
} }