api integration
This commit is contained in:
@@ -1,77 +0,0 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tanami_app/Globalconst.dart';
|
||||
|
||||
import '../../../../Api_Helper/base_manager.dart';
|
||||
import '../../domain/repository/forgot_password_api.dart';
|
||||
import 'restore_password_event.dart';
|
||||
import 'restore_password_state.dart';
|
||||
|
||||
class RestorePasswordBloc
|
||||
extends Bloc<RestorePasswordEvent, RestorePasswordState> {
|
||||
final GlobalKey<FormState> formKey = GlobalKey<FormState>();
|
||||
final TextEditingController passwordTextField = TextEditingController();
|
||||
final TextEditingController repeatPasswordTextField = TextEditingController();
|
||||
|
||||
GlobalKey<FormState> getFormKey() {
|
||||
return formKey;
|
||||
}
|
||||
|
||||
RestorePasswordBloc() : super(RestorePasswordInitial()) {
|
||||
passwordTextField.addListener(_onFormFieldChanged);
|
||||
repeatPasswordTextField.addListener(_onFormFieldChanged);
|
||||
on<RestorePasswordFormChanged>(_onLoginFormChanged);
|
||||
on<RestorePasswordSubmitted>((event, emit) async {
|
||||
if (!formKey.currentState!.validate()) {
|
||||
return;
|
||||
}
|
||||
emit(RestorePasswordLoading());
|
||||
try {
|
||||
log(Globalconst.token);
|
||||
Map<String, dynamic> dataForm = {
|
||||
"token": Globalconst.token,
|
||||
"passwordHash": event.password
|
||||
};
|
||||
ResponseData response =
|
||||
await ForgotPasswordApi().resetPasswordApi(dataForm);
|
||||
|
||||
if (response.status == ResponseStatus.SUCCESS) {
|
||||
emit(RestorePasswordSuccess());
|
||||
} else {
|
||||
emit(RestorePasswordFailure(response.message));
|
||||
}
|
||||
} catch (e) {
|
||||
emit(RestorePasswordFailure(e.toString()));
|
||||
}
|
||||
});
|
||||
}
|
||||
void _onFormFieldChanged() {
|
||||
add(RestorePasswordFormChanged(
|
||||
passwordTextField.text,
|
||||
repeatPasswordTextField.text,
|
||||
));
|
||||
}
|
||||
|
||||
void _onLoginFormChanged(
|
||||
RestorePasswordFormChanged event, Emitter<RestorePasswordState> emit) {
|
||||
final areFieldsFilled =
|
||||
event.password.isNotEmpty && event.repeatPassword.isNotEmpty;
|
||||
emit(RestorePasswordFieldsState(areFieldsFilled));
|
||||
}
|
||||
|
||||
// Method to reset text fields
|
||||
void resetFields() {
|
||||
passwordTextField.clear();
|
||||
repeatPasswordTextField.clear();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> close() {
|
||||
passwordTextField.dispose();
|
||||
repeatPasswordTextField.dispose();
|
||||
|
||||
return super.close();
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class RestorePasswordEvent extends Equatable {
|
||||
const RestorePasswordEvent();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class RestorePasswordSubmitted extends RestorePasswordEvent {
|
||||
final String password;
|
||||
final String repeatPassword;
|
||||
|
||||
const RestorePasswordSubmitted(
|
||||
this.password,
|
||||
this.repeatPassword,
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object> get props => [password, repeatPassword];
|
||||
}
|
||||
|
||||
class RestorePasswordFormChanged extends RestorePasswordEvent {
|
||||
final String password;
|
||||
final String repeatPassword;
|
||||
|
||||
const RestorePasswordFormChanged(this.password, this.repeatPassword);
|
||||
|
||||
@override
|
||||
List<Object> get props => [password, repeatPassword];
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tanami_app/Globalconst.dart';
|
||||
|
||||
import '../../../../Api_Helper/base_manager.dart';
|
||||
import '../../../../core/utils/secure/secure_storage_service.dart';
|
||||
import '../../domain/repository/forgot_password_api.dart';
|
||||
import 'restore_password_phone_verification_event.dart';
|
||||
import 'restore_password_phone_verification_state.dart';
|
||||
|
||||
class RestorePasswordPhoneVerificationBloc extends Bloc<
|
||||
RestorePasswordPhoneVerificationEvent,
|
||||
RestorePasswordPhoneVerificationState> {
|
||||
final SecureStorageService secureStorageService;
|
||||
String isdcode = "";
|
||||
|
||||
String countryId = "";
|
||||
final GlobalKey<FormState> formKey = GlobalKey<FormState>();
|
||||
final TextEditingController phoneNumberTextField = TextEditingController();
|
||||
final TextEditingController countrySelectionTextField =
|
||||
TextEditingController();
|
||||
|
||||
GlobalKey<FormState> getFormKey() {
|
||||
return formKey;
|
||||
}
|
||||
|
||||
RestorePasswordPhoneVerificationBloc({required this.secureStorageService})
|
||||
: super(RestorePasswordPhoneVerificationInitial()) {
|
||||
phoneNumberTextField.addListener(_onFormFieldChanged);
|
||||
countrySelectionTextField.addListener(_onFormFieldChanged);
|
||||
on<RestorePasswordPhoneVerificationFormChanged>(_onLoginFormChanged);
|
||||
on<RestorePasswordPhoneVerificationSubmitted>((event, emit) async {
|
||||
emit(RestorePasswordPhoneVerificationLoading());
|
||||
try {
|
||||
Map<String, dynamic> dataForm = {
|
||||
"countryId": event.id,
|
||||
"phoneNumber": event.phoneNumber
|
||||
};
|
||||
ResponseData response =
|
||||
await ForgotPasswordApi().forgotPasswordApi(dataForm);
|
||||
|
||||
if (response.status == ResponseStatus.SUCCESS) {
|
||||
var data = response.data["data"];
|
||||
await secureStorageService.write('temp_token', data["token"]);
|
||||
Globalconst.token = data["token"];
|
||||
emit(RestorePasswordPhoneVerificationSuccess());
|
||||
} else {
|
||||
emit(RestorePasswordPhoneVerificationFailure(response.message));
|
||||
}
|
||||
} catch (e) {
|
||||
emit(RestorePasswordPhoneVerificationFailure(e.toString()));
|
||||
}
|
||||
});
|
||||
}
|
||||
void _onFormFieldChanged() {
|
||||
add(RestorePasswordPhoneVerificationFormChanged(
|
||||
phoneNumberTextField.text,
|
||||
countrySelectionTextField.text,
|
||||
));
|
||||
}
|
||||
|
||||
void _onLoginFormChanged(RestorePasswordPhoneVerificationFormChanged event,
|
||||
Emitter<RestorePasswordPhoneVerificationState> emit) {
|
||||
final areFieldsFilled =
|
||||
event.phoneNumber.isNotEmpty && event.country.isNotEmpty;
|
||||
emit(RestorePasswordPhoneVerificationFieldsState(areFieldsFilled));
|
||||
}
|
||||
|
||||
// Method to reset text fields
|
||||
void resetFields() {
|
||||
phoneNumberTextField.clear();
|
||||
countrySelectionTextField.clear();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> close() {
|
||||
phoneNumberTextField.dispose();
|
||||
countrySelectionTextField.dispose();
|
||||
|
||||
return super.close();
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class RestorePasswordPhoneVerificationEvent extends Equatable {
|
||||
const RestorePasswordPhoneVerificationEvent();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class RestorePasswordPhoneVerificationSubmitted
|
||||
extends RestorePasswordPhoneVerificationEvent {
|
||||
final String phoneNumber;
|
||||
final String countryResidence;
|
||||
final String id;
|
||||
|
||||
const RestorePasswordPhoneVerificationSubmitted(
|
||||
this.phoneNumber,
|
||||
this.countryResidence,
|
||||
this.id,
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object> get props => [phoneNumber, countryResidence];
|
||||
}
|
||||
|
||||
class RestorePasswordPhoneVerificationFormChanged
|
||||
extends RestorePasswordPhoneVerificationEvent {
|
||||
final String phoneNumber;
|
||||
final String country;
|
||||
|
||||
const RestorePasswordPhoneVerificationFormChanged(
|
||||
this.phoneNumber, this.country);
|
||||
|
||||
@override
|
||||
List<Object> get props => [phoneNumber, country];
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class RestorePasswordPhoneVerificationState extends Equatable {
|
||||
const RestorePasswordPhoneVerificationState();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class RestorePasswordPhoneVerificationInitial
|
||||
extends RestorePasswordPhoneVerificationState {}
|
||||
|
||||
class RestorePasswordPhoneVerificationLoading
|
||||
extends RestorePasswordPhoneVerificationState {}
|
||||
|
||||
class RestorePasswordPhoneVerificationSuccess
|
||||
extends RestorePasswordPhoneVerificationState {}
|
||||
|
||||
class RestorePasswordPhoneVerificationFailure
|
||||
extends RestorePasswordPhoneVerificationState {
|
||||
final String error;
|
||||
|
||||
const RestorePasswordPhoneVerificationFailure(this.error);
|
||||
|
||||
@override
|
||||
List<Object> get props => [error];
|
||||
}
|
||||
|
||||
class RestorePasswordPhoneVerificationFieldsState
|
||||
extends RestorePasswordPhoneVerificationState {
|
||||
final bool areFieldsFilled;
|
||||
|
||||
const RestorePasswordPhoneVerificationFieldsState(this.areFieldsFilled);
|
||||
|
||||
@override
|
||||
List<Object> get props => [areFieldsFilled];
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class RestorePasswordState extends Equatable {
|
||||
const RestorePasswordState();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class RestorePasswordInitial extends RestorePasswordState {}
|
||||
|
||||
class RestorePasswordLoading extends RestorePasswordState {}
|
||||
|
||||
class RestorePasswordSuccess extends RestorePasswordState {}
|
||||
|
||||
class RestorePasswordFailure extends RestorePasswordState {
|
||||
final String error;
|
||||
|
||||
const RestorePasswordFailure(this.error);
|
||||
|
||||
@override
|
||||
List<Object> get props => [error];
|
||||
}
|
||||
|
||||
class RestorePasswordFieldsState extends RestorePasswordState {
|
||||
final bool areFieldsFilled;
|
||||
|
||||
const RestorePasswordFieldsState(this.areFieldsFilled);
|
||||
|
||||
@override
|
||||
List<Object> get props => [areFieldsFilled];
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import 'package:tanami_app/features/forgotPassword/presentation/pages/restore_pa
|
||||
|
||||
import '../../../../core/styles/app_color.dart';
|
||||
import '../../../countrySelection/bloc/choose_country_bloc.dart';
|
||||
import '../bloc/restore_password_phone_verification_bloc.dart';
|
||||
import '../../bloc/restore_password_phone_verification_bloc.dart';
|
||||
|
||||
class RestorePasswordPhoneVerificationScreen extends StatelessWidget {
|
||||
const RestorePasswordPhoneVerificationScreen({super.key});
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
import '../../../../core/styles/app_color.dart';
|
||||
import '../bloc/restore_password_bloc.dart';
|
||||
import '../../bloc/restore_password_bloc.dart';
|
||||
import 'restore_password_layout.dart';
|
||||
|
||||
class RestorePasswordScreen extends StatelessWidget {
|
||||
|
||||
@@ -13,9 +13,9 @@ import '../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../shared/components/button_widget.dart';
|
||||
import '../../../../shared/components/text_widget.dart';
|
||||
import '../../../countrySelection/bloc/choose_country_bloc.dart';
|
||||
import '../bloc/restore_password_bloc.dart';
|
||||
import '../bloc/restore_password_event.dart';
|
||||
import '../bloc/restore_password_state.dart';
|
||||
import '../../bloc/restore_password_bloc.dart';
|
||||
import '../../bloc/restore_password_event.dart';
|
||||
import '../../bloc/restore_password_state.dart';
|
||||
|
||||
class RestorePasswordBottomSection extends StatelessWidget {
|
||||
const RestorePasswordBottomSection({
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:tanami_app/core/styles/app_text.dart';
|
||||
import 'package:tanami_app/features/forgotPassword/presentation/bloc/restore_password_bloc.dart';
|
||||
import 'package:tanami_app/features/forgotPassword/bloc/restore_password_bloc.dart';
|
||||
|
||||
import '../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../shared/components/bloc/password_field/password_visibility_bloc.dart';
|
||||
|
||||
@@ -13,9 +13,9 @@ import '../../../../core/utils/language/localizations_delegate.dart';
|
||||
import '../../../../shared/components/button_widget.dart';
|
||||
import '../../../../shared/components/text_widget.dart';
|
||||
import '../../../countrySelection/bloc/choose_country_bloc.dart';
|
||||
import '../bloc/restore_password_phone_verification_bloc.dart';
|
||||
import '../bloc/restore_password_phone_verification_event.dart';
|
||||
import '../bloc/restore_password_phone_verification_state.dart';
|
||||
import '../../bloc/restore_password_phone_verification_bloc.dart';
|
||||
import '../../bloc/restore_password_phone_verification_event.dart';
|
||||
import '../../bloc/restore_password_phone_verification_state.dart';
|
||||
|
||||
class RestorePasswordPhoneVerificationBottomSection extends StatelessWidget {
|
||||
const RestorePasswordPhoneVerificationBottomSection({
|
||||
|
||||
@@ -15,7 +15,7 @@ import '../../../countrySelection/bloc/GetCountry/get_country_bloc.dart';
|
||||
import '../../../countrySelection/bloc/GetCountry/get_country_state.dart';
|
||||
import '../../../countrySelection/bloc/choose_country_bloc.dart';
|
||||
import '../../../countrySelection/bloc/choose_country_state.dart';
|
||||
import '../bloc/restore_password_phone_verification_bloc.dart';
|
||||
import '../../bloc/restore_password_phone_verification_bloc.dart';
|
||||
|
||||
class RestorePasswordPhoneVerificationForm extends StatelessWidget {
|
||||
const RestorePasswordPhoneVerificationForm({super.key});
|
||||
|
||||
Reference in New Issue
Block a user