Files
kulakpos_app/lib/Screens/Authentication/Sign In/Repo/sign_in_repo.dart

83 lines
2.8 KiB
Dart
Raw Normal View History

2026-02-07 15:57:09 +07:00
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:http/http.dart' as http;
import '../../../../Const/api_config.dart';
import '../../../../Repository/constant_functions.dart';
import '../../../../currency.dart';
import '../../../Home/home.dart';
import '../../Sign Up/verify_email.dart';
import '../../profile_setup_screen.dart';
class LogInRepo {
Future<bool> logIn({
required String email,
required String password,
required BuildContext context,
}) async {
final url = Uri.parse('${APIConfig.url}/sign-in');
final body = {
'email': email,
'password': password,
};
final headers = {
'Accept': 'application/json',
};
try {
final response = await http.post(url, headers: headers, body: body);
final responseData = jsonDecode(response.body);
EasyLoading.dismiss();
print('Signin ${response.statusCode}');
print('Signin ${response.body}');
if (response.statusCode == 200) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(responseData['message'])));
bool isSetupDone = responseData['data']['is_setup'];
try {
await CurrencyMethods()
.saveCurrencyDataInLocalDatabase(selectedCurrencySymbol: responseData['data']['currency']['symbol'], selectedCurrencyName: responseData['data']['currency']['name']);
} catch (error) {
print(error);
}
if (!isSetupDone) {
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => const ProfileSetup()));
} else {
await saveUserData(
token: responseData['data']['token'],
);
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => const Home()));
}
return true;
} else if (response.statusCode == 201) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(responseData['message'])));
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => VerifyEmail(
email: email,
isFormForgotPass: false,
),
),
);
return true;
} else {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(responseData['message'])));
}
} catch (error) {
print(error);
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $error')));
// ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Network error: Please try again')));
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Network error: Please try again')));
}
return false;
}
}