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,
    1,
  );
  if (connectTokenData != null) {
    String accessToken = connectTokenData.accessToken!;
    OneIDResetOTP? oneIDResetOTP = await oneIDReset(
      context,
      phoneNumber,
      accessToken,
      1,
    );
    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,
          );
        }));
      }
    }
  }
}