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,
    1,
  );
  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 Future.wait([
      PreferenceInfo().setOwnerID(ownerID),
      PreferenceInfo().saveUserInfo(firstName, familyName, preferredUserName, accessToken),
      PreferenceInfo().setConnectTokenResponse(jsonEncode(connectTokenData.toJson())),
    ]).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');
    // }
  }
}