requestOTPLogin function

Future<void> requestOTPLogin(
  1. BuildContext context,
  2. Locale? locale,
  3. String phoneNumber,
  4. String clientID,
  5. String secret,
  6. String scope,
  7. dynamic route,
  8. bool isFromConfirm,
  9. String? fromApp,
)

Implementation

Future<void> requestOTPLogin(
    BuildContext context,
    Locale? locale,
    String phoneNumber,
    String clientID,
    String secret,
    String scope,
    var route,
    bool isFromConfirm, String? fromApp) async {
  showDialog(
      context: context,
      builder: (_) {
        return DialogLoading(title: locale == const Locale('en') ? 'Loading' : 'ກຳລັງໂຫຼດ');
      });
  String grantTypeCredentials = ConstData.grantTypeCredentials;
  String payload = jsonEncode({
    "clientID": clientID,
    "secret": secret,
    "grantType": grantTypeCredentials,
    "scope": scope,
    "username": '',
    "password": ''
  });
  ConnectRefreshTokenModel? connectTokenData =
      await connectTokenLogin(payload, context, locale, 0);
  if (connectTokenData != null) {
    String accessToken = connectTokenData.accessToken!;
    OneIDResetOTP? oneIDResetOTP =
        await oneIDReset(context, phoneNumber, accessToken, 0);
    if (oneIDResetOTP != null) {
      if (isFromConfirm) {
        Navigator.pop(context);
      } else {
        Navigator.pushReplacement(context, MaterialPageRoute(builder: (_) {
          return ConfirmOTP(
            clientID: clientID,
            secret: secret,
            scope: scope,
            phoneNumber: phoneNumber,
            route: route,
            fromApp: fromApp,
            locale: locale,
          );
        }));
      }
    }
  }
}