save login works

This commit is contained in:
Felix 2019-07-16 12:09:10 +01:00
parent 4c036b8bf2
commit c288f257c5
No known key found for this signature in database
GPG key ID: 130EF6DC43E4DD07
7 changed files with 51 additions and 16 deletions

View file

@ -20,14 +20,14 @@ Future<LoginModel> requestLoginAPI(
'password': password,
};
debugPrint('$body');
// debugPrint('$body');
final response = await http.post(
url,
body: json.encode(body),
);
debugPrint(response.body);
// debugPrint(response.body);
if (response.statusCode == 200) {
final responseJson = json.decode(response.body);
@ -38,17 +38,18 @@ Future<LoginModel> requestLoginAPI(
return LoginModel.fromJson(responseJson);
} else {
debugPrint("Invalid, either creds are wrong or server is down");
Navigator.of(context).pushReplacementNamed('/HomePage'); // just here temporarily while server is down
// debugPrint("Invalid, either credentials are wrong or server is down");
final responseJson = json.decode(response.body);
saveCurrentLogin(responseJson, body["email"]);
showDialogSingleButton(
context,
"Unable to Login",
"You may have supplied an invalid 'Email' / 'Password' combination. Please try again or email an administrator.",
"OK");
return null;
}
}

View file

@ -26,12 +26,12 @@ Future<LoginModel> requestLogoutAPI(BuildContext context) async {
);
if (response.statusCode == 200) {
debugPrint("Logout successful: " + response.body);
// debugPrint("Logout successful: " + response.body);
saveLogout();
return null;
} else {
debugPrint("Logout unsuccessful: " + response.body);
// debugPrint("Logout unsuccessful: " + response.body);
saveLogout();
return null;

View file

@ -46,20 +46,20 @@ Future<LoginModel> submitReceiptAPI(
'session_key': preferences.get('LastToken'),
};
debugPrint('$body');
debugPrint(json.encode(body));
// debugPrint('$body');
// debugPrint(json.encode(body));
final response = await http.post(
url,
body: json.encode(body),
);
debugPrint(response.body);
// debugPrint(response.body);
if (response.statusCode == 200) {
final responseJson = json.decode(response.body);
print(responseJson[0]);
// print(responseJson[0]);
showDialogSingleButton(
context,

View file

@ -1,7 +1,17 @@
import 'package:flutter/material.dart';
import 'package:local_spend/common/apifunctions/request_logout_api.dart';
import 'package:shared_preferences/shared_preferences.dart';
logout(context) {
requestLogoutAPI(context);
Navigator.of(context).pushReplacementNamed('/LoginPage');
_clearLoginDetails();
}
_clearLoginDetails() async {
SharedPreferences preferences = await SharedPreferences.getInstance();
preferences.setString('username', "");
preferences.setString('password', "");
print("details cleared");
}

View file

@ -37,7 +37,7 @@ class _BasicDrawerState extends State<BasicDrawer> {
style: TextStyle(color: Colors.black, fontSize: 20.0),
),
onTap: () {
debugPrint('$token');
// debugPrint('$token');
Navigator.of(context).pushNamed('/ReceiptPage');
},
// enabled: token != null && token.isNotEmpty,

View file

@ -19,8 +19,8 @@ class LoginPage extends StatefulWidget {
}
class LoginPageState extends State<LoginPage> {
final TextEditingController _emailController = TextEditingController(text: 'test@example.com'); // remove
final TextEditingController _passwordController = TextEditingController(text: 'abc123'); // remove
final TextEditingController _emailController = TextEditingController(/*text: 'test@example.com'*/); // remove
final TextEditingController _passwordController = TextEditingController(/*text: 'abc123'*/); // remove
bool _saveLoginDetails = true; // I am extremely sorry for the placement of this variable
// it will be fixed soon I promise
@ -44,6 +44,8 @@ class LoginPageState extends State<LoginPage> {
_saveCurrentRoute("/LoginPage");
focusNode = FocusNode();
_fillLoginDetails();
}
@override
@ -52,13 +54,35 @@ class LoginPageState extends State<LoginPage> {
super.dispose();
}
_fillLoginDetails() async {
SharedPreferences preferences = await SharedPreferences.getInstance();
var username = await preferences.get('username');
var password = await preferences.get('password');
_emailController.text = await username;
_passwordController.text = await password;
}
_saveCurrentRoute(String lastRoute) async {
SharedPreferences preferences = await SharedPreferences.getInstance();
await preferences.setString('LastPageRoute', lastRoute);
}
void login(String username, String password) {
login(String username, String password) async {
SystemChannels.textInput.invokeMethod('TextInput.hide');
SharedPreferences preferences = await SharedPreferences.getInstance();
if (_saveLoginDetails) {
await preferences.setString('username', username);
await preferences.setString('password', password);
print("details saved");
} else {
await preferences.setString('username', "");
await preferences.setString('password', "");
print("details cleared");
}
requestLoginAPI(context, username,
password);
}
@ -174,7 +198,7 @@ class LoginPageState extends State<LoginPage> {
gradient: new LinearGradient(
colors: [
Colors.blue[300],
Colors.blue[600],
Colors.blue[500],
],
stops: [0,1],
begin: Alignment.topLeft,

View file

@ -106,7 +106,7 @@ class ReceiptPageState extends State<ReceiptPage> {
// setting up 'receipt'
receipt.amount = amount;
receipt.time = formatDate(time);
debugPrint(organisation.name + ", " + organisation.streetName + ", " + organisation.town + ", " + organisation.postcode);
// debugPrint(organisation.name + ", " + organisation.streetName + ", " + organisation.town + ", " + organisation.postcode);
receipt.organisationName = organisation.name;
receipt.street = organisation.streetName;
receipt.town = organisation.town;