Login Api Issue Fixed Manually

merge-requests/24/head
zaid_daoud 3 years ago
parent 1bf9d612ad
commit f7057f4827

@ -6,10 +6,9 @@ import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/user.dart';
class UserProvider extends ChangeNotifier{
class UserProvider extends ChangeNotifier {
//reset provider data
void reset(){
void reset() {
_user = null;
ApiManager.instance.user = user;
_loading = false;
@ -25,7 +24,6 @@ class UserProvider extends ChangeNotifier{
notifyListeners();
}
// when login or register in-process _login = true
// when login or register is done or not start = false
bool _loading = false;
@ -41,30 +39,30 @@ class UserProvider extends ChangeNotifier{
/// return state code if request complete may be 200, 404 or 403
/// for more details check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart
Future<int> login ({
Future<int> login({
@required String host,
@required User user,
}) async {
if(_loading == true)
return -2;
if (_loading == true) return -2;
_loading = true;
notifyListeners();
Response response;
try{
try {
response = await ApiManager.instance.post(
URLs.login,
body: await user.toLoginJson(),
URLs.login,
body: await user.toLoginJson(),
);
_loading = false;
if(response.statusCode >= 200 && response.statusCode < 300) {
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
_user = User.fromJson(jsonDecode(response.body));
ApiManager.instance.user = _user;
notifyListeners();
return response.statusCode;
}
notifyListeners();
return response.statusCode;
} catch(error) {
} catch (error) {
_loading = false;
notifyListeners();
return -1;
@ -77,28 +75,27 @@ class UserProvider extends ChangeNotifier{
/// return state code if request complete may be 200, 404 or 403
/// for more details about state codes check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart
Future<int> register ({
Future<int> register({
@required String host,
@required User user,
}) async {
if(_loading == true)
return -2;
if (_loading == true) return -2;
_loading = true;
notifyListeners();
Response response;
try{
try {
response = await ApiManager.instance.post(
URLs.register,
body: await user.toLoginJson(),
);
} catch(error) {
} catch (error) {
_loading = false;
notifyListeners();
return -1;
}
_loading = false;
notifyListeners();
if(response.statusCode >= 200 && response.statusCode < 300) {
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
_user = User.fromJson(jsonDecode(utf8.decode(response.bodyBytes))[0]);
_user.hospital = user.hospital;
@ -114,31 +111,27 @@ class UserProvider extends ChangeNotifier{
/// return state code if request complete may be 200, 404 or 403
/// for more details about state codes check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart
Future<int> updateProfile ({
Future<int> updateProfile({
@required String host,
@required User user,
}) async {
if(_loading == true)
return -2;
if (_loading == true) return -2;
_loading = true;
notifyListeners();
Response response;
Map<String,dynamic> jsonObject ={};
Map<String, dynamic> jsonObject = {};
jsonObject["uid"] = user.id;
jsonObject["token"] = user.token;
if(user.department.id != _user.department.id)
jsonObject["department"] = user.department.id;
if(user.whatsApp != _user.whatsApp)
jsonObject["whatsapp"] = user.whatsApp;
if(user.phoneNumber != _user.phoneNumber)
jsonObject["phone"] = user.phoneNumber;
try{
if (user.department.id != _user.department.id) jsonObject["department"] = user.department.id;
if (user.whatsApp != _user.whatsApp) jsonObject["whatsapp"] = user.whatsApp;
if (user.phoneNumber != _user.phoneNumber) jsonObject["phone"] = user.phoneNumber;
try {
response = response = await ApiManager.instance.post(
URLs.login,
body: jsonObject,
);
} catch(error) {
} catch (error) {
_loading = false;
notifyListeners();
return -1;
@ -147,7 +140,7 @@ class UserProvider extends ChangeNotifier{
_loading = false;
notifyListeners();
if(response.statusCode >= 200 && response.statusCode < 300) {
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
_user = User.fromJson(jsonDecode(utf8.decode(response.bodyBytes))[0]);
_user.hospital = user.hospital;
@ -157,5 +150,4 @@ class UserProvider extends ChangeNotifier{
}
return response.statusCode;
}
}
}

@ -13,8 +13,6 @@ import 'package:test_sa/views/widgets/app_text_form_field.dart';
import 'package:test_sa/views/widgets/buttons/app_button.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import '../widgets/buttons/app_outlined_button.dart';
class Login extends StatefulWidget {
static final String id = "/login";
@ -115,16 +113,17 @@ class _LoginState extends State<Login> {
user: _user,
host: _settingProvider.host,
);
if (status >= 200 && status < 300) {
if (status >= 200 && status < 300 && _userProvider.user?.userName != null) {
_settingProvider.setUser(_userProvider.user);
// if (_userProvider.user.isActive)
Navigator.of(context).pushNamed(LandPage.id);
// else
// Fluttertoast.showToast(msg: _subtitle.activationAlert);
// if (_userProvider.user.isActive)
Navigator.of(context).pushNamed(LandPage.id);
// else
// Fluttertoast.showToast(msg: _subtitle.activationAlert);
} else {
if(status >= 400 && status < 500) return;
if (status >= 400 && status < 500) return;
String errorMessage = status == 400 ? _subtitle.wrongEmailOrPassword : HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle);
String errorMessage =
status == 400 || _userProvider.user?.userName == null ? _subtitle.wrongEmailOrPassword : HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle);
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(errorMessage),
));

@ -182,7 +182,7 @@ class _LandPageState extends State<LandPage> {
// Navigator.of(context).pushNamed(PreventiveMaintenanceVisitsPage.id);
// },
// ),
if (_userProvider.user.type != UsersTypes.engineer)
if (_userProvider.user != null && _userProvider.user.type != UsersTypes.engineer)
LandPageItem(
text: "Request Gas Refill",
icon: FontAwesomeIcons.truckFast,

Loading…
Cancel
Save