added changes to login model and start of receipt
This commit is contained in:
parent
3af4997c01
commit
075a57278f
10 changed files with 122 additions and 79 deletions
|
@ -7,6 +7,7 @@ import 'package:local_spend/common/functions/save_current_login.dart';
|
|||
import 'package:local_spend/common/functions/show_dialog_single_button.dart';
|
||||
import 'package:local_spend/model/json/login_model.dart';
|
||||
import 'package:local_spend/config.dart';
|
||||
// debug
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
Future<LoginModel> requestLoginAPI(
|
||||
|
@ -32,14 +33,14 @@ Future<LoginModel> requestLoginAPI(
|
|||
final responseJson = json.decode(response.body);
|
||||
var user = new LoginModel.fromJson(responseJson);
|
||||
|
||||
saveCurrentLogin(responseJson);
|
||||
saveCurrentLogin(responseJson, body["email"]);
|
||||
Navigator.of(context).pushReplacementNamed('/HomePage');
|
||||
|
||||
return LoginModel.fromJson(responseJson);
|
||||
} else {
|
||||
final responseJson = json.decode(response.body);
|
||||
|
||||
saveCurrentLogin(responseJson);
|
||||
saveCurrentLogin(responseJson, body["email"]);
|
||||
showDialogSingleButton(
|
||||
context,
|
||||
"Unable to Login",
|
||||
|
|
47
lib/common/apifunctions/submit_receipt_api.dart
Normal file
47
lib/common/apifunctions/submit_receipt_api.dart
Normal file
|
@ -0,0 +1,47 @@
|
|||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:local_spend/common/functions/save_current_login.dart';
|
||||
import 'package:local_spend/common/functions/show_dialog_single_button.dart';
|
||||
import 'package:local_spend/model/json/login_model.dart';
|
||||
import 'package:local_spend/config.dart';
|
||||
// debug
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
Future<LoginModel> submitReceiptAPI(
|
||||
BuildContext context, String amount, String time) async {
|
||||
//var apiUrl = ConfigWrapper.of(context).apiKey;
|
||||
final url = "https://dev.peartrade.org/api/login";
|
||||
|
||||
Map<String, String> body = {
|
||||
'transaction_value': amount,
|
||||
'purchase_time': time,
|
||||
};
|
||||
|
||||
debugPrint('$body');
|
||||
|
||||
final response = await http.post(
|
||||
url,
|
||||
body: json.encode(body),
|
||||
);
|
||||
|
||||
debugPrint(response.body);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
final responseJson = json.decode(response.body);
|
||||
|
||||
return LoginModel.fromJson(responseJson);
|
||||
} else {
|
||||
final responseJson = json.decode(response.body);
|
||||
|
||||
|
||||
showDialogSingleButton(
|
||||
context,
|
||||
"Unable to Submit Receipt",
|
||||
"You may have supplied an invalid 'Email' / 'Password' combination. Please try again or email an administrator.",
|
||||
"OK");
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:local_spend/model/json/login_model.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
saveCurrentLogin(Map responseJson) async {
|
||||
saveCurrentLogin(Map responseJson, loginEmail) async {
|
||||
SharedPreferences preferences = await SharedPreferences.getInstance();
|
||||
|
||||
var user;
|
||||
|
@ -13,12 +13,9 @@ saveCurrentLogin(Map responseJson) async {
|
|||
var token = (responseJson != null && responseJson.isNotEmpty)
|
||||
? LoginModel.fromJson(responseJson).token
|
||||
: "";
|
||||
var email = (responseJson != null && responseJson.isNotEmpty)
|
||||
? LoginModel.fromJson(responseJson).email
|
||||
var email = (loginEmail != null)
|
||||
? loginEmail
|
||||
: "";
|
||||
var pk = (responseJson != null && responseJson.isNotEmpty)
|
||||
? LoginModel.fromJson(responseJson).userId
|
||||
: 0;
|
||||
|
||||
await preferences.setString(
|
||||
'LastUser', (user != null && user.length > 0) ? user : "");
|
||||
|
@ -26,5 +23,4 @@ saveCurrentLogin(Map responseJson) async {
|
|||
'LastToken', (token != null && token.length > 0) ? token : "");
|
||||
await preferences.setString(
|
||||
'LastEmail', (email != null && email.length > 0) ? email : "");
|
||||
await preferences.setInt('LastUserId', (pk != null && pk > 0) ? pk : 0);
|
||||
}
|
||||
|
|
|
@ -6,5 +6,4 @@ saveLogout() async {
|
|||
await preferences.setString('LastUser', "");
|
||||
await preferences.setString('LastToken', "");
|
||||
await preferences.setString('LastEmail', "");
|
||||
await preferences.setInt('LastUserId', 0);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:local_spend/common/apifunctions/request_logout_api.dart';
|
||||
import 'package:local_spend/common/functions/get_token.dart';
|
||||
// debug
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
class BasicDrawer extends StatefulWidget {
|
||||
@override
|
||||
|
@ -8,6 +11,9 @@ class BasicDrawer extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _BasicDrawerState extends State<BasicDrawer> {
|
||||
var token;
|
||||
// TODO: add getter with getToken to check logged in
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Drawer(
|
||||
|
@ -21,9 +27,10 @@ class _BasicDrawerState extends State<BasicDrawer> {
|
|||
style: TextStyle(color: Colors.black, fontSize: 20.0),
|
||||
),
|
||||
onTap: () {
|
||||
requestLogoutAPI(context);
|
||||
debugPrint('$token');
|
||||
Navigator.of(context).pushNamed('/ReceiptPage');
|
||||
},
|
||||
// enabled: token != null && token.isNotEmpty,
|
||||
),
|
||||
ListTile(
|
||||
title: Text(
|
||||
|
|
Reference in a new issue