Last active
January 24, 2021 16:19
-
-
Save CoderJava/6e78a8d7c5f4736d567de444ee82086b to your computer and use it in GitHub Desktop.
profile_cubit.dart flutter crud cubit
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter_bloc/flutter_bloc.dart'; | |
import 'package:flutter_crud_cubit/model/profile_data.dart'; | |
import '../helper/dio_helper.dart'; | |
import 'profile_state.dart'; | |
class ProfileCubit extends Cubit<ProfileState> { | |
final DioHelper dioHelper; | |
ProfileCubit(this.dioHelper) : super(InitialProfileState()); | |
void getAllProfiles() async { | |
emit(LoadingProfileState()); | |
var result = await dioHelper.getAllProfiles(); | |
result.fold( | |
(errorMessage) => emit(FailureLoadAllProfileState(errorMessage)), | |
(listProfiles) => emit(SuccessLoadAllProfileState(listProfiles)), | |
); | |
} | |
void addProfile(ProfileData profileData) async { | |
emit(LoadingProfileState()); | |
var result = await dioHelper.addProfile(profileData); | |
result.fold( | |
(errorMessage) => emit(FailureSubmitProfileState(errorMessage)), | |
(_) => emit(SuccessSubmitProfileState()), | |
); | |
} | |
void editProfile(ProfileData profileData) async { | |
emit(LoadingProfileState()); | |
var result = await dioHelper.editProfile(profileData); | |
result.fold( | |
(errorMessage) => emit(FailureSubmitProfileState(errorMessage)), | |
(_) => emit(SuccessSubmitProfileState()), | |
); | |
} | |
void deleteProfile(int id) async { | |
emit(LoadingProfileState()); | |
var resultDelete = await dioHelper.deleteProfile(id); | |
var resultDeleteFold = resultDelete.fold( | |
(errorMessage) => errorMessage, | |
(response) => response, | |
); | |
if (resultDeleteFold is String) { | |
emit(FailureDeleteProfileState(resultDeleteFold)); | |
return; | |
} | |
var resultGetAllProfiles = await dioHelper.getAllProfiles(); | |
resultGetAllProfiles.fold( | |
(errorMessage) => emit(FailureLoadAllProfileState(errorMessage)), | |
(listProfiles) => emit( | |
SuccessLoadAllProfileState( | |
listProfiles, | |
message: 'Profile data deleted successfully', | |
), | |
), | |
); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment