2019-05-08 18:54:14 +00:00
|
|
|
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';
|
|
|
|
|
|
|
|
Future<LoginModel> requestLoginAPI(
|
|
|
|
BuildContext context, String email, String password) async {
|
|
|
|
//var apiUrl = ConfigWrapper.of(context).apiKey;
|
|
|
|
final url = "https://dev.peartrade.org/api/login";
|
|
|
|
|
|
|
|
Map<String, String> body = {
|
|
|
|
'email': email,
|
|
|
|
'password': password,
|
|
|
|
};
|
|
|
|
|
2019-07-16 11:09:10 +00:00
|
|
|
// debugPrint('$body');
|
2019-05-08 18:54:14 +00:00
|
|
|
|
|
|
|
final response = await http.post(
|
|
|
|
url,
|
2019-05-09 11:52:25 +00:00
|
|
|
body: json.encode(body),
|
2019-05-08 18:54:14 +00:00
|
|
|
);
|
|
|
|
|
2019-07-16 11:09:10 +00:00
|
|
|
// debugPrint(response.body);
|
2019-05-08 18:54:14 +00:00
|
|
|
|
|
|
|
if (response.statusCode == 200) {
|
|
|
|
final responseJson = json.decode(response.body);
|
|
|
|
var user = new LoginModel.fromJson(responseJson);
|
|
|
|
|
2019-05-10 11:43:45 +00:00
|
|
|
saveCurrentLogin(responseJson, body["email"]);
|
2019-07-17 11:54:31 +00:00
|
|
|
Navigator.of(context).pushReplacementNamed('/ReceiptPage');
|
2019-05-08 18:54:14 +00:00
|
|
|
|
|
|
|
return LoginModel.fromJson(responseJson);
|
|
|
|
} else {
|
2019-07-16 11:09:10 +00:00
|
|
|
// debugPrint("Invalid, either credentials are wrong or server is down");
|
2019-07-15 11:09:10 +00:00
|
|
|
|
2019-05-08 18:54:14 +00:00
|
|
|
final responseJson = json.decode(response.body);
|
|
|
|
|
2019-05-10 11:43:45 +00:00
|
|
|
saveCurrentLogin(responseJson, body["email"]);
|
2019-07-16 11:09:10 +00:00
|
|
|
|
2019-05-08 18:54:14 +00:00
|
|
|
showDialogSingleButton(
|
|
|
|
context,
|
|
|
|
"Unable to Login",
|
|
|
|
"You may have supplied an invalid 'Email' / 'Password' combination. Please try again or email an administrator.",
|
|
|
|
"OK");
|
2019-07-16 11:09:10 +00:00
|
|
|
|
2019-05-08 18:54:14 +00:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|