api integration

This commit is contained in:
jayesh
2024-07-19 16:20:14 +05:30
parent 948777ee21
commit 4e768e6f6a
44 changed files with 166 additions and 113 deletions

View File

@@ -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();
}
}

View File

@@ -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];
}

View File

@@ -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();
}
}

View File

@@ -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];
}

View File

@@ -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];
}

View File

@@ -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];
}

View File

@@ -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});

View File

@@ -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 {

View File

@@ -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({

View File

@@ -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';

View File

@@ -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({

View File

@@ -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});