TIF_E41211491/lib/app/data/providers/authKurir_provider.dart

67 lines
2.1 KiB
Dart

import 'package:dikantin/app/data/providers/services.dart';
import 'package:get/get.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:http/http.dart' as http;
import 'dart:convert'; // Import for JSON decoding
class AuthKurirProvider extends GetxController {
RxBool isKurirActive = false.obs;
Future<http.Response> loginKurir(
String username, String password, String tokenfcm) async {
final data = {
'email': username,
'password': password,
'token_fcm': tokenfcm
};
final response = await http.post(Uri.parse(Api.signInKurir), body: data);
if (response.statusCode == 200) {
// Parse the JSON response
final jsonResponse = jsonDecode(response.body);
// Extract the "token" from the JSON
final token = jsonResponse['data']['token'];
final id_kurir = jsonResponse['data']['id_kurir'];
final prefs = await SharedPreferences.getInstance();
await prefs.setString('id_kurir', id_kurir);
// Save token to SharedPreferences
saveTokenToSharedPreferences(token);
return response;
} else {
// Handle errors in login
final jsonResponse = jsonDecode(response.body);
final errorMessage = jsonResponse['data'];
print('${response.body}');
if (errorMessage == "Akun anda belum terverifikasi") {
Get.snackbar(
'Gagal Login !..',
'$errorMessage',
snackPosition: SnackPosition.TOP, // Menampilkan Snackbar dari atas
duration: Duration(seconds: 2),
);
throw Exception('Account not verified: $errorMessage');
} else {
Get.snackbar(
'Gagal Login !..',
'$errorMessage',
snackPosition: SnackPosition.TOP, // Menampilkan Snackbar dari atas
duration: Duration(seconds: 2),
);
throw Exception('$errorMessage');
}
}
}
Future<String> saveTokenToSharedPreferences(String token) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setString('tokenKurir', token);
return token;
}
}