api integration
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:tanami_app/Api_Helper/base_manager.dart';
|
||||
import 'package:tanami_app/Globalconst.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
|
||||
import '../../../../core/utils/secure/secure_storage_service.dart';
|
||||
import '../../Repository/PinAPIServices.dart';
|
||||
|
||||
@@ -23,43 +23,33 @@ class PinBloc extends Bloc<PinEvent, PinState> {
|
||||
final newPin = state.pin + event.number;
|
||||
|
||||
if (newPin.length <= 6) {
|
||||
|
||||
|
||||
if (newPin.length == 6) {
|
||||
if (event.fromscreen == "login") {
|
||||
Map<String, dynamic> verifypindata = {
|
||||
"token": Globalconst.token,
|
||||
"masterPin": newPin
|
||||
};
|
||||
ResponseData response =
|
||||
await PinAPIServices().Verifypin(verifypindata);
|
||||
if (response.status == ResponseStatus.SUCCESS) {
|
||||
var data = response.data["user"];
|
||||
String accesstoken = data["accessToken"];
|
||||
String refreshtoken = data["refreshToken"];
|
||||
await secureStorageService.write('accesstoken', accesstoken);
|
||||
await secureStorageService.write('refreshtoken', refreshtoken);
|
||||
|
||||
emit(state.copyWith(
|
||||
isVerified: false,
|
||||
error: AppText.incorrectPinCode,
|
||||
verifiedOnce: true,
|
||||
));
|
||||
} else {
|
||||
emit(state.copyWith(
|
||||
pin: newPin,
|
||||
pinComplete: newPin.length == 6,
|
||||
error: 'has error',
|
||||
isVerified: false,
|
||||
verifiedOnce: false));
|
||||
}
|
||||
} else {
|
||||
emit(state.copyWith(
|
||||
if ((event.fromscreen == "login" ||
|
||||
event.fromscreen == "LoginedInUser") &&
|
||||
newPin.length < 6) {
|
||||
emit(state.copyWith(
|
||||
pin: newPin,
|
||||
pinComplete: newPin.length == 6,
|
||||
error: '',
|
||||
verifiedOnce: false));
|
||||
verifiedOnce: false,
|
||||
));
|
||||
} else {
|
||||
if ((event.fromscreen != "login" &&
|
||||
event.fromscreen != "LoginedInUser")) {
|
||||
emit(state.copyWith(
|
||||
pin: newPin,
|
||||
pinComplete: newPin.length == 6,
|
||||
error: '',
|
||||
verifiedOnce: false,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
if (newPin.length == 6) {
|
||||
if (event.fromscreen == "confirmpin") {
|
||||
add(VerifyPinPressed(newPin, event.fromscreen));
|
||||
} else if (event.fromscreen == "login" ||
|
||||
event.fromscreen == "LoginedInUser") {
|
||||
add(VerifyLoginPinPressed(newPin, event.fromscreen));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -83,7 +73,7 @@ class PinBloc extends Bloc<PinEvent, PinState> {
|
||||
on<VerifyPinPressed>((event, emit) async {
|
||||
final storedPin = await secureStorageService.read('pin_code');
|
||||
Map<String, dynamic> pindata = {
|
||||
"token": Globalconst.token,
|
||||
"token": await secureStorageService.read("temp_token"),
|
||||
"masterPin": event.pin
|
||||
};
|
||||
if (storedPin == event.pin) {
|
||||
@@ -101,5 +91,30 @@ class PinBloc extends Bloc<PinEvent, PinState> {
|
||||
));
|
||||
}
|
||||
});
|
||||
|
||||
on<VerifyLoginPinPressed>((event, emit) async {
|
||||
Map<String, dynamic> pindata = {
|
||||
"token": await secureStorageService.read("temp_token"),
|
||||
"masterPin": event.pin
|
||||
};
|
||||
|
||||
ResponseData response = await PinAPIServices().Verifypin(pindata);
|
||||
if (response.status == ResponseStatus.SUCCESS) {
|
||||
emit(state.copyWith(
|
||||
pinComplete: true,
|
||||
pin: state.pin,
|
||||
isVerified: true,
|
||||
error: '',
|
||||
verifiedOnce: false));
|
||||
} else {
|
||||
emit(state.copyWith(
|
||||
pinComplete: true,
|
||||
pin: state.pin,
|
||||
isVerified: false,
|
||||
error: "Incorrect Pin Code",
|
||||
verifiedOnce: true,
|
||||
));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,10 +11,10 @@ class NumberPressed extends PinEvent {
|
||||
final String number;
|
||||
final String fromscreen;
|
||||
|
||||
const NumberPressed(this.number,this.fromscreen);
|
||||
const NumberPressed(this.number, this.fromscreen);
|
||||
|
||||
@override
|
||||
List<Object> get props => [number];
|
||||
List<Object> get props => [number, fromscreen];
|
||||
}
|
||||
|
||||
class BackspacePressed extends PinEvent {}
|
||||
@@ -24,8 +24,17 @@ class SavePinPressed extends PinEvent {}
|
||||
class VerifyPinPressed extends PinEvent {
|
||||
final String pin;
|
||||
final String fromscreen;
|
||||
const VerifyPinPressed(this.pin,this.fromscreen);
|
||||
const VerifyPinPressed(this.pin, this.fromscreen);
|
||||
|
||||
@override
|
||||
List<Object> get props => [pin,fromscreen];
|
||||
List<Object> get props => [pin, fromscreen];
|
||||
}
|
||||
|
||||
class VerifyLoginPinPressed extends PinEvent {
|
||||
final String pin;
|
||||
final String fromscreen;
|
||||
const VerifyLoginPinPressed(this.pin, this.fromscreen);
|
||||
|
||||
@override
|
||||
List<Object> get props => [pin, fromscreen];
|
||||
}
|
||||
|
||||
@@ -20,7 +20,9 @@ class PinLayout extends StatelessWidget {
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
PinTopSection(fromScreen: fromScreen),
|
||||
PinTopSection(
|
||||
fromScreen: fromScreen,
|
||||
),
|
||||
PinKey(
|
||||
fromScreen: fromScreen,
|
||||
),
|
||||
|
||||
@@ -20,7 +20,9 @@ class PinScreen extends StatelessWidget {
|
||||
final secureStorageService = SecureStorageService();
|
||||
return WillPopScope(
|
||||
onWillPop: () async {
|
||||
if (fromScreen == "LoginedInUser") {
|
||||
if (fromScreen == "login" ||
|
||||
fromScreen == "LoginedInUser" ||
|
||||
fromScreen == "login-master-pending") {
|
||||
exitAppDialog(context);
|
||||
return false;
|
||||
} else {
|
||||
@@ -29,7 +31,9 @@ class PinScreen extends StatelessWidget {
|
||||
},
|
||||
child: Scaffold(
|
||||
backgroundColor: AppColor.plainWhite,
|
||||
appBar: fromScreen == "register" || fromScreen == "reset-pin"
|
||||
appBar: fromScreen == "register" ||
|
||||
fromScreen == "reset-pin" ||
|
||||
fromScreen == "login-master-pending"
|
||||
? AppBarWidget(
|
||||
height: 75,
|
||||
titleTxt: fromScreen == "reset-pin"
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:gap/gap.dart';
|
||||
import 'package:tanami_app/core/routes/route_name.dart';
|
||||
import 'package:tanami_app/core/routes/routes.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/core/utils/secure/secure_storage_service.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../bloc/pin_bloc.dart';
|
||||
@@ -13,13 +14,14 @@ class ConfirmPinKey extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final SecureStorageService secureStorageService = SecureStorageService();
|
||||
return Column(
|
||||
children: [
|
||||
const Gap(20),
|
||||
BlocConsumer<PinBloc, PinState>(
|
||||
listener: (context, state) {
|
||||
listener: (context, state) async {
|
||||
if (state.pinComplete && state.isVerified) {
|
||||
// successToastMessage(context, "Pin verified successfully");
|
||||
await secureStorageService.write('isLoginedIn', "true");
|
||||
goRouter.goNamed(RouteName.mainScreen);
|
||||
}
|
||||
},
|
||||
@@ -91,7 +93,9 @@ class ConfirmPinKey extends StatelessWidget {
|
||||
final number = index == 10 ? '0' : '${index + 1}';
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
context.read<PinBloc>().add(NumberPressed(number,"confirmpin"));
|
||||
context
|
||||
.read<PinBloc>()
|
||||
.add(NumberPressed(number, "confirmpin"));
|
||||
},
|
||||
child: Container(
|
||||
margin: const EdgeInsets.all(12),
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:tanami_app/core/routes/route_name.dart';
|
||||
import 'package:tanami_app/core/routes/routes.dart';
|
||||
import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/features/countrySelection/bloc/choose_country_bloc.dart';
|
||||
import 'package:tanami_app/features/securePin/presentation/widgets/forgot_pin_dialog.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
import 'package:tanami_app/shared/components/toast_message.dart';
|
||||
|
||||
import '../../../../core/routes/route_name.dart';
|
||||
import '../../../../core/routes/routes.dart';
|
||||
import '../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../shared/components/toast_message.dart';
|
||||
import '../../../login/presentation/bloc/login_bloc.dart';
|
||||
import '../bloc/pin_bloc.dart';
|
||||
|
||||
class PinKey extends StatelessWidget {
|
||||
@@ -23,8 +23,9 @@ class PinKey extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
print(fromScreen);
|
||||
var localizations = AppLocalizations.of(context);
|
||||
final loginBloc = context.read<LoginBloc>();
|
||||
final radioBloc = context.read<RadioBloc>();
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
@@ -35,14 +36,12 @@ class PinKey extends StatelessWidget {
|
||||
state.error.isEmpty &&
|
||||
!state.verifiedOnce) {
|
||||
if (fromScreen == "login" || fromScreen == "LoginedInUser") {
|
||||
print("login true");
|
||||
loginBloc.resetFields();
|
||||
radioBloc.resetSelection();
|
||||
successToastMessage(context,
|
||||
localizations.translate(AppText.pinVerifiedSucess));
|
||||
goRouter.pushNamed(RouteName.mainScreen);
|
||||
} else if (fromScreen == "reset-pin") {
|
||||
print("reset true");
|
||||
|
||||
log("Running this");
|
||||
successToastMessage(
|
||||
context, localizations.translate(AppText.pinUpdatedSucess));
|
||||
goRouter.pop();
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/shared/components/text_widget.dart';
|
||||
|
||||
import '../../../../Globalconst.dart';
|
||||
import '../../../../core/styles/app_images.dart';
|
||||
import '../../../../core/utils/language/localizations_delegate.dart';
|
||||
|
||||
@@ -38,8 +39,9 @@ class PinTopSection extends StatelessWidget {
|
||||
TextWidget().text14W500(
|
||||
localizations.translate(AppText.welcomeBackText),
|
||||
clr: AppColor.smokeGrayColor),
|
||||
TextWidget()
|
||||
.text14W700(", Pooja", clr: AppColor.plainBlack),
|
||||
TextWidget().text14W700(
|
||||
", ${Globalconst.firstName.trim()}",
|
||||
clr: AppColor.plainBlack),
|
||||
],
|
||||
),
|
||||
TextWidget().text14W500(
|
||||
|
||||
Reference in New Issue
Block a user