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/controllers/api_routes/urls.dart';
import 'package:test_sa/models/user.dart'; import 'package:test_sa/models/user.dart';
class UserProvider extends ChangeNotifier{ class UserProvider extends ChangeNotifier {
//reset provider data //reset provider data
void reset(){ void reset() {
_user = null; _user = null;
ApiManager.instance.user = user; ApiManager.instance.user = user;
_loading = false; _loading = false;
@ -25,7 +24,6 @@ class UserProvider extends ChangeNotifier{
notifyListeners(); notifyListeners();
} }
// when login or register in-process _login = true // when login or register in-process _login = true
// when login or register is done or not start = false // when login or register is done or not start = false
bool _loading = false; bool _loading = false;
@ -41,30 +39,30 @@ class UserProvider extends ChangeNotifier{
/// return state code if request complete may be 200, 404 or 403 /// return state code if request complete may be 200, 404 or 403
/// for more details check http state manager /// for more details check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart /// lib\controllers\http_status_manger\http_status_manger.dart
Future<int> login ({ Future<int> login({
@required String host, @required String host,
@required User user, @required User user,
}) async { }) async {
if(_loading == true) if (_loading == true) return -2;
return -2;
_loading = true; _loading = true;
notifyListeners(); notifyListeners();
Response response; Response response;
try{ try {
response = await ApiManager.instance.post( response = await ApiManager.instance.post(
URLs.login, URLs.login,
body: await user.toLoginJson(), body: await user.toLoginJson(),
); );
_loading = false; _loading = false;
if(response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received // client's request was successfully received
_user = User.fromJson(jsonDecode(response.body)); _user = User.fromJson(jsonDecode(response.body));
ApiManager.instance.user = _user; ApiManager.instance.user = _user;
notifyListeners();
return response.statusCode; return response.statusCode;
} }
notifyListeners(); notifyListeners();
return response.statusCode; return response.statusCode;
} catch(error) { } catch (error) {
_loading = false; _loading = false;
notifyListeners(); notifyListeners();
return -1; return -1;
@ -77,28 +75,27 @@ class UserProvider extends ChangeNotifier{
/// return state code if request complete may be 200, 404 or 403 /// return state code if request complete may be 200, 404 or 403
/// for more details about state codes check http state manager /// for more details about state codes check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart /// lib\controllers\http_status_manger\http_status_manger.dart
Future<int> register ({ Future<int> register({
@required String host, @required String host,
@required User user, @required User user,
}) async { }) async {
if(_loading == true) if (_loading == true) return -2;
return -2;
_loading = true; _loading = true;
notifyListeners(); notifyListeners();
Response response; Response response;
try{ try {
response = await ApiManager.instance.post( response = await ApiManager.instance.post(
URLs.register, URLs.register,
body: await user.toLoginJson(), body: await user.toLoginJson(),
); );
} catch(error) { } catch (error) {
_loading = false; _loading = false;
notifyListeners(); notifyListeners();
return -1; return -1;
} }
_loading = false; _loading = false;
notifyListeners(); notifyListeners();
if(response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received // client's request was successfully received
_user = User.fromJson(jsonDecode(utf8.decode(response.bodyBytes))[0]); _user = User.fromJson(jsonDecode(utf8.decode(response.bodyBytes))[0]);
_user.hospital = user.hospital; _user.hospital = user.hospital;
@ -114,31 +111,27 @@ class UserProvider extends ChangeNotifier{
/// return state code if request complete may be 200, 404 or 403 /// return state code if request complete may be 200, 404 or 403
/// for more details about state codes check http state manager /// for more details about state codes check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart /// lib\controllers\http_status_manger\http_status_manger.dart
Future<int> updateProfile ({ Future<int> updateProfile({
@required String host, @required String host,
@required User user, @required User user,
}) async { }) async {
if(_loading == true) if (_loading == true) return -2;
return -2;
_loading = true; _loading = true;
notifyListeners(); notifyListeners();
Response response; Response response;
Map<String,dynamic> jsonObject ={}; Map<String, dynamic> jsonObject = {};
jsonObject["uid"] = user.id; jsonObject["uid"] = user.id;
jsonObject["token"] = user.token; jsonObject["token"] = user.token;
if(user.department.id != _user.department.id) if (user.department.id != _user.department.id) jsonObject["department"] = user.department.id;
jsonObject["department"] = user.department.id; if (user.whatsApp != _user.whatsApp) jsonObject["whatsapp"] = user.whatsApp;
if(user.whatsApp != _user.whatsApp) if (user.phoneNumber != _user.phoneNumber) jsonObject["phone"] = user.phoneNumber;
jsonObject["whatsapp"] = user.whatsApp; try {
if(user.phoneNumber != _user.phoneNumber)
jsonObject["phone"] = user.phoneNumber;
try{
response = response = await ApiManager.instance.post( response = response = await ApiManager.instance.post(
URLs.login, URLs.login,
body: jsonObject, body: jsonObject,
); );
} catch(error) { } catch (error) {
_loading = false; _loading = false;
notifyListeners(); notifyListeners();
return -1; return -1;
@ -147,7 +140,7 @@ class UserProvider extends ChangeNotifier{
_loading = false; _loading = false;
notifyListeners(); notifyListeners();
if(response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received // client's request was successfully received
_user = User.fromJson(jsonDecode(utf8.decode(response.bodyBytes))[0]); _user = User.fromJson(jsonDecode(utf8.decode(response.bodyBytes))[0]);
_user.hospital = user.hospital; _user.hospital = user.hospital;
@ -157,5 +150,4 @@ class UserProvider extends ChangeNotifier{
} }
return response.statusCode; 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/buttons/app_button.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import '../widgets/buttons/app_outlined_button.dart';
class Login extends StatefulWidget { class Login extends StatefulWidget {
static final String id = "/login"; static final String id = "/login";
@ -115,16 +113,17 @@ class _LoginState extends State<Login> {
user: _user, user: _user,
host: _settingProvider.host, host: _settingProvider.host,
); );
if (status >= 200 && status < 300) { if (status >= 200 && status < 300 && _userProvider.user?.userName != null) {
_settingProvider.setUser(_userProvider.user); _settingProvider.setUser(_userProvider.user);
// if (_userProvider.user.isActive) // if (_userProvider.user.isActive)
Navigator.of(context).pushNamed(LandPage.id); Navigator.of(context).pushNamed(LandPage.id);
// else // else
// Fluttertoast.showToast(msg: _subtitle.activationAlert); // Fluttertoast.showToast(msg: _subtitle.activationAlert);
} else { } 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( ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(errorMessage), content: Text(errorMessage),
)); ));

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

Loading…
Cancel
Save