signIn method

void signIn()

Implementation

void signIn() async {
  final version = SharedAppConfig.appVersionBuildNumber;
  final fcmToken = SharedAppConfig.fcmToken ?? '';

  final params = {
    'username': userNameController!.value.text,
    'password': passwordController!.value.text,
    'lat': locationController.latitude.value.toString(),
    'lng': locationController.longitude.value.toString(),
    'fcmToken': fcmToken,
    'loginTypeId': kIsWeb ? 1 : 2,
    'appVersion': version,
    'timestamp': DateTime.now().millisecondsSinceEpoch.toString(),
    'deviceUniqueId': deviceId.value,
    'systemType': kIsWeb ? 'Web' : 'APK', // Web or Mobile
    'platform': getPlatform(), // Android / iPhone
    'device': deviceModel.value, // Device Name
    'osVersion': osVersion.value // OS Version
  };

  isLoading.value = true;
  try {
    final response =
        await _apiService.postData(AppUrls.loginApiNew, data: params);
    final userModel = LoginNewResponse.fromJson(response.data);
    if (userModel.data != null && userModel.statusCode == 200) {
      sessionController.startSessionTimer();
      saveUserDetailsNew(userModel.data);
      AppUtils.showSnackBar('Success Login');
    } else {
      AppUtils.showSnackBar(userModel.message ?? 'Something went wrong..');
    }
    errorMessage.value = '';
    isLoading.value = false;
  } catch (e) {
    isLoading.value = false;
    errorMessage.value = 'Failed to fetch data';
  } finally {
    isLoading.value = false;
  }
}