confirmOTPToken function

Future<void> confirmOTPToken(
  1. BuildContext context,
  2. Locale? locale,
  3. String clientID,
  4. String secret,
  5. String scope,
  6. String username,
  7. String password,
  8. dynamic route,
)

ສຳລັບ ConfirmOTP

Implementation

Future<void> confirmOTPToken(BuildContext context, Locale? locale, String clientID, String secret, String scope,
    String username, String password, var route) async {
  showDialog(
      context: context,
      builder: (_) {
        return DialogLoading(title: locale == const Locale('en') ? 'Loading' : 'ກຳລັງໂຫຼດ');
      });
  String payload = jsonEncode({
    "clientID": clientID,
    "secret": secret,
    "grantType": ConstData.grantType,
    "scope": scope,
    "username": username,
    "password": password
  });
  ConnectRefreshTokenModel? connectTokenData = await connectTokenLogin(payload, context, locale, 0);
  if (connectTokenData != null) {
    String accessToken = connectTokenData.accessToken!;
    Map<String, dynamic> decodedToken = JwtDecoder.decode(accessToken);
    // String account = decodedToken["account"];
    String firstName = decodedToken["name"] ?? '';
    String familyName = decodedToken["family_name"] ?? '';
    String preferredUserName = decodedToken["preferred_username"] ?? '';
    String ownerID = decodedToken["sub"] ?? '';
    await PreferenceInfo().setOwnerID(ownerID);
    await PreferenceInfo().saveUserInfo(firstName, familyName, preferredUserName, accessToken).then((value) {
      Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => route), (route) => false);
    });

    /// ຖ້າມີເບີຢູ່ໃນລະບົບ
    // if (account == 'exist') {
    //   String firstName = decodedToken["name"];
    //   String familyName = decodedToken["family_name"];
    //   String preferredUserName = decodedToken["preferred_username"];
    //   String ownerID = decodedToken["sub"];
    //   await PreferenceInfo().setOwnerID(ownerID);
    //   await PreferenceInfo()
    //       .saveUserInfo(firstName, familyName, preferredUserName, accessToken)
    //       .then((value) {
    //     Navigator.pushAndRemoveUntil(context,
    //         MaterialPageRoute(builder: (context) => route), (route) => false);
    //   });
    // } else {
    //   Navigator.pop(context);
    //   errorDialog(
    //       context,
    //       locale == const Locale('en') ? 'Sorry' : 'ຂໍອະໄພ',
    //       locale == const Locale('en') ? 'The number does not exist in LaoKYC\nPlease register your phone number' : 'ເບີຂອງທ່ານບໍ່ທັນມີໃນລະບົບ LaoKYC\nກະລຸນາລົງທະບຽນກ່ອນ',
    //       locale == const Locale('en') ? 'Close' : 'ປິດ',
    //       'Phetsarath OT');
    // }
  }
}