Suppression bloc
parent
e04ccf8897
commit
75a5ef2df2
|
|
@ -1,28 +0,0 @@
|
||||||
import 'package:bloc/bloc.dart';
|
|
||||||
import 'package:mobdr/model/integration/login_model.dart';
|
|
||||||
import 'package:mobdr/network/api_provider.dart';
|
|
||||||
import 'package:meta/meta.dart';
|
|
||||||
|
|
||||||
part 'login_event.dart';
|
|
||||||
part 'login_state.dart';
|
|
||||||
|
|
||||||
class LoginBloc extends Bloc<LoginEvent, LoginState> {
|
|
||||||
LoginBloc() : super(LoginInitial()) {
|
|
||||||
on<Login>(_login);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _login(Login event, Emitter<LoginState> emit) async {
|
|
||||||
ApiProvider _apiProvider = ApiProvider();
|
|
||||||
|
|
||||||
emit(LoginWaiting());
|
|
||||||
try {
|
|
||||||
List<LoginModel> data =
|
|
||||||
await _apiProvider.login2(event.email, event.password, event.apiToken);
|
|
||||||
emit(LoginSuccess(loginData: data));
|
|
||||||
} catch (ex) {
|
|
||||||
if (ex != 'cancel') {
|
|
||||||
emit(LoginError(errorMessage: ex.toString()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
part of 'login_bloc.dart';
|
|
||||||
|
|
||||||
@immutable
|
|
||||||
abstract class LoginEvent {}
|
|
||||||
|
|
||||||
class Login extends LoginEvent {
|
|
||||||
final String email;
|
|
||||||
final String password;
|
|
||||||
final apiToken;
|
|
||||||
Login({required this.email, required this.password, required this.apiToken});
|
|
||||||
}
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
part of 'login_bloc.dart';
|
|
||||||
|
|
||||||
@immutable
|
|
||||||
abstract class LoginState {}
|
|
||||||
|
|
||||||
class LoginInitial extends LoginState {}
|
|
||||||
|
|
||||||
class InitialLoginState extends LoginState {}
|
|
||||||
|
|
||||||
class LoginError extends LoginState {
|
|
||||||
final String errorMessage;
|
|
||||||
|
|
||||||
LoginError({
|
|
||||||
required this.errorMessage,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
class LoginWaiting extends LoginState {}
|
|
||||||
|
|
||||||
class LoginSuccess extends LoginState {
|
|
||||||
final List<LoginModel> loginData;
|
|
||||||
LoginSuccess({required this.loginData});
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
export 'product_grid_bloc.dart';
|
|
||||||
export 'product_grid_event.dart';
|
|
||||||
export 'product_grid_state.dart';
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
import 'package:bloc/bloc.dart';
|
|
||||||
import 'package:mobdr/model/integration/product_grid_model.dart';
|
|
||||||
import 'package:mobdr/network/api_provider.dart';
|
|
||||||
import './bloc.dart';
|
|
||||||
|
|
||||||
class ProductGridBloc extends Bloc<ProductGridEvent, ProductGridState> {
|
|
||||||
ProductGridBloc() : super(InitialProductGridState()) {
|
|
||||||
on<GetProductGrid>(_getProductGrid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _getProductGrid(
|
|
||||||
GetProductGrid event, Emitter<ProductGridState> emit) async {
|
|
||||||
ApiProvider _apiProvider = ApiProvider();
|
|
||||||
|
|
||||||
emit(ProductGridWaiting());
|
|
||||||
try {
|
|
||||||
List<ProductGridModel> data = await _apiProvider.getProductGrid(
|
|
||||||
event.sessionId, event.skip, event.limit, event.apiToken);
|
|
||||||
emit(GetProductGridSuccess(productGridData: data));
|
|
||||||
} catch (ex) {
|
|
||||||
if (ex != 'cancel') {
|
|
||||||
emit(ProductGridError(errorMessage: ex.toString()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
import 'package:meta/meta.dart';
|
|
||||||
|
|
||||||
@immutable
|
|
||||||
abstract class ProductGridEvent {}
|
|
||||||
|
|
||||||
class GetProductGrid extends ProductGridEvent {
|
|
||||||
final String sessionId, skip, limit;
|
|
||||||
final apiToken;
|
|
||||||
GetProductGrid({required this.sessionId, required this.skip, required this.limit, @required this.apiToken});
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
import 'package:mobdr/model/integration/product_grid_model.dart';
|
|
||||||
import 'package:meta/meta.dart';
|
|
||||||
|
|
||||||
@immutable
|
|
||||||
abstract class ProductGridState {}
|
|
||||||
|
|
||||||
class InitialProductGridState extends ProductGridState {}
|
|
||||||
|
|
||||||
class ProductGridError extends ProductGridState {
|
|
||||||
final String errorMessage;
|
|
||||||
|
|
||||||
ProductGridError({
|
|
||||||
required this.errorMessage,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
class ProductGridWaiting extends ProductGridState {}
|
|
||||||
|
|
||||||
class GetProductGridSuccess extends ProductGridState {
|
|
||||||
final List<ProductGridModel> productGridData;
|
|
||||||
GetProductGridSuccess({required this.productGridData});
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
export 'product_listview_bloc.dart';
|
|
||||||
export 'product_listview_event.dart';
|
|
||||||
export 'product_listview_state.dart';
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
import 'package:bloc/bloc.dart';
|
|
||||||
import 'package:mobdr/model/integration/product_listview_model.dart';
|
|
||||||
import 'package:mobdr/network/api_provider.dart';
|
|
||||||
import './bloc.dart';
|
|
||||||
|
|
||||||
class ProductListviewBloc
|
|
||||||
extends Bloc<ProductListviewEvent, ProductListviewState> {
|
|
||||||
ProductListviewBloc() : super(InitialProductListviewState()) {
|
|
||||||
on<GetProductListview>(_getProductListview);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _getProductListview(
|
|
||||||
GetProductListview event, Emitter<ProductListviewState> emit) async {
|
|
||||||
ApiProvider _apiProvider = ApiProvider();
|
|
||||||
|
|
||||||
emit(ProductListviewWaiting());
|
|
||||||
try {
|
|
||||||
List<ProductListviewModel> data = await _apiProvider.getProductListview(
|
|
||||||
event.sessionId, event.skip, event.limit, event.apiToken);
|
|
||||||
emit(GetProductListviewSuccess(productListviewData: data));
|
|
||||||
} catch (ex) {
|
|
||||||
if (ex != 'cancel') {
|
|
||||||
emit(ProductListviewError(errorMessage: ex.toString()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
import 'package:meta/meta.dart';
|
|
||||||
|
|
||||||
@immutable
|
|
||||||
abstract class ProductListviewEvent {}
|
|
||||||
|
|
||||||
class GetProductListview extends ProductListviewEvent {
|
|
||||||
final String sessionId, skip, limit;
|
|
||||||
final apiToken;
|
|
||||||
GetProductListview({required this.sessionId, required this.skip, required this.limit, required this.apiToken});
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
import 'package:mobdr/model/integration/product_listview_model.dart';
|
|
||||||
import 'package:meta/meta.dart';
|
|
||||||
|
|
||||||
@immutable
|
|
||||||
abstract class ProductListviewState {}
|
|
||||||
|
|
||||||
class InitialProductListviewState extends ProductListviewState {}
|
|
||||||
|
|
||||||
class ProductListviewError extends ProductListviewState {
|
|
||||||
final String errorMessage;
|
|
||||||
|
|
||||||
ProductListviewError({
|
|
||||||
required this.errorMessage,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
class ProductListviewWaiting extends ProductListviewState {}
|
|
||||||
|
|
||||||
class GetProductListviewSuccess extends ProductListviewState {
|
|
||||||
final List<ProductListviewModel> productListviewData;
|
|
||||||
GetProductListviewSuccess({required this.productListviewData});
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
export 'student_bloc.dart';
|
|
||||||
export 'student_event.dart';
|
|
||||||
export 'student_state.dart';
|
|
||||||
|
|
@ -1,121 +0,0 @@
|
||||||
import 'package:bloc/bloc.dart';
|
|
||||||
import 'package:mobdr/model/integration/student_model.dart';
|
|
||||||
import 'package:mobdr/network/api_provider.dart';
|
|
||||||
import './bloc.dart';
|
|
||||||
|
|
||||||
class StudentBloc extends Bloc<StudentEvent, StudentState> {
|
|
||||||
StudentBloc() : super(InitialStudentState()) {
|
|
||||||
on<GetStudent>(_getStudent);
|
|
||||||
on<AddStudent>(_addStudent);
|
|
||||||
on<EditStudent>(_editStudent);
|
|
||||||
on<DeleteStudent>(_deleteStudent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _getStudent(GetStudent event, Emitter<StudentState> emit) async {
|
|
||||||
ApiProvider _apiProvider = ApiProvider();
|
|
||||||
|
|
||||||
emit(GetStudentWaiting());
|
|
||||||
try {
|
|
||||||
List<StudentModel> data =
|
|
||||||
await _apiProvider.getStudent(event.sessionId, event.apiToken);
|
|
||||||
emit(GetStudentSuccess(studentData: data));
|
|
||||||
} catch (ex) {
|
|
||||||
if (ex != 'cancel') {
|
|
||||||
emit(GetStudentError(errorMessage: ex.toString()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _addStudent(AddStudent event, Emitter<StudentState> emit) async {
|
|
||||||
ApiProvider _apiProvider = ApiProvider();
|
|
||||||
|
|
||||||
String errorMessage = '';
|
|
||||||
if (event.studentName == '') {
|
|
||||||
errorMessage = 'Student name cannot be empty';
|
|
||||||
} else if (event.studentPhoneNumber == '') {
|
|
||||||
errorMessage = 'Student phone number can not be empty';
|
|
||||||
} else if (event.studentGender == '') {
|
|
||||||
errorMessage = 'Student gender can not be empty';
|
|
||||||
} else if (event.studentAddress == '') {
|
|
||||||
errorMessage = 'Student address can not be empty';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (errorMessage == '') {
|
|
||||||
emit(AddStudentWaiting());
|
|
||||||
try {
|
|
||||||
List data = await _apiProvider.addStudent(
|
|
||||||
event.sessionId,
|
|
||||||
event.studentName,
|
|
||||||
event.studentPhoneNumber,
|
|
||||||
event.studentGender,
|
|
||||||
event.studentAddress,
|
|
||||||
event.apiToken);
|
|
||||||
emit(AddStudentSuccess(
|
|
||||||
msg: data[0],
|
|
||||||
studentId: data[1],
|
|
||||||
studentName: event.studentName,
|
|
||||||
studentPhoneNumber: event.studentPhoneNumber,
|
|
||||||
studentGender: event.studentGender,
|
|
||||||
studentAddress: event.studentAddress));
|
|
||||||
} catch (ex) {
|
|
||||||
emit(AddStudentError(errorMessage: ex.toString()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
emit(StudentErrorValidation(errorMessage: errorMessage));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _editStudent(EditStudent event, Emitter<StudentState> emit) async {
|
|
||||||
ApiProvider _apiProvider = ApiProvider();
|
|
||||||
|
|
||||||
String errorMessage = '';
|
|
||||||
if (event.studentName == '') {
|
|
||||||
errorMessage = 'Student name cannot be empty';
|
|
||||||
} else if (event.studentPhoneNumber == '') {
|
|
||||||
errorMessage = 'Student phone number can not be empty';
|
|
||||||
} else if (event.studentGender == '') {
|
|
||||||
errorMessage = 'Student gender can not be empty';
|
|
||||||
} else if (event.studentAddress == '') {
|
|
||||||
errorMessage = 'Student address can not be empty';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (errorMessage == '') {
|
|
||||||
emit(EditStudentWaiting());
|
|
||||||
try {
|
|
||||||
String message = await _apiProvider.editStudent(
|
|
||||||
event.sessionId,
|
|
||||||
event.studentId,
|
|
||||||
event.studentName,
|
|
||||||
event.studentPhoneNumber,
|
|
||||||
event.studentGender,
|
|
||||||
event.studentAddress,
|
|
||||||
event.apiToken);
|
|
||||||
emit(EditStudentSuccess(
|
|
||||||
msg: message,
|
|
||||||
index: event.index,
|
|
||||||
studentId: event.studentId,
|
|
||||||
studentName: event.studentName,
|
|
||||||
studentPhoneNumber: event.studentPhoneNumber,
|
|
||||||
studentGender: event.studentGender,
|
|
||||||
studentAddress: event.studentAddress));
|
|
||||||
} catch (ex) {
|
|
||||||
emit(EditStudentError(errorMessage: ex.toString()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
emit(StudentErrorValidation(errorMessage: errorMessage));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _deleteStudent(DeleteStudent event, Emitter<StudentState> emit) async {
|
|
||||||
ApiProvider _apiProvider = ApiProvider();
|
|
||||||
|
|
||||||
emit(DeleteStudentWaiting());
|
|
||||||
try {
|
|
||||||
String msg = await _apiProvider.deleteStudent(
|
|
||||||
event.sessionId, event.studentId, event.apiToken);
|
|
||||||
emit(DeleteStudentSuccess(msg: msg, index: event.index));
|
|
||||||
} catch (ex) {
|
|
||||||
emit(DeleteStudentError(errorMessage: ex.toString()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
import 'package:meta/meta.dart';
|
|
||||||
|
|
||||||
@immutable
|
|
||||||
abstract class StudentEvent {}
|
|
||||||
|
|
||||||
class GetStudent extends StudentEvent {
|
|
||||||
final String sessionId;
|
|
||||||
final apiToken;
|
|
||||||
GetStudent({required this.sessionId, required this.apiToken});
|
|
||||||
}
|
|
||||||
|
|
||||||
class AddStudent extends StudentEvent {
|
|
||||||
final String sessionId;
|
|
||||||
final String studentName, studentPhoneNumber, studentGender, studentAddress;
|
|
||||||
final apiToken;
|
|
||||||
AddStudent({required this.sessionId, required this.studentName, required this.studentPhoneNumber, required this.studentGender, required this.studentAddress, required this.apiToken});
|
|
||||||
}
|
|
||||||
|
|
||||||
class EditStudent extends StudentEvent {
|
|
||||||
final String sessionId;
|
|
||||||
final int studentId, index;
|
|
||||||
final String studentName, studentPhoneNumber, studentGender, studentAddress;
|
|
||||||
final apiToken;
|
|
||||||
EditStudent({required this.sessionId, required this.index, required this.studentId, required this.studentName, required this.studentPhoneNumber, required this.studentGender, required this.studentAddress, required this.apiToken});
|
|
||||||
}
|
|
||||||
|
|
||||||
class DeleteStudent extends StudentEvent {
|
|
||||||
final String sessionId;
|
|
||||||
final int studentId, index;
|
|
||||||
final apiToken;
|
|
||||||
DeleteStudent({required this.sessionId, required this.studentId, required this.index, required this.apiToken});
|
|
||||||
}
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
import 'package:mobdr/model/integration/student_model.dart';
|
|
||||||
import 'package:meta/meta.dart';
|
|
||||||
|
|
||||||
@immutable
|
|
||||||
abstract class StudentState {}
|
|
||||||
|
|
||||||
class InitialStudentState extends StudentState {}
|
|
||||||
|
|
||||||
// get student state
|
|
||||||
class GetStudentWaiting extends StudentState {}
|
|
||||||
|
|
||||||
class GetStudentError extends StudentState {
|
|
||||||
final String errorMessage;
|
|
||||||
GetStudentError({
|
|
||||||
required this.errorMessage,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
class GetStudentSuccess extends StudentState {
|
|
||||||
final List<StudentModel> studentData;
|
|
||||||
GetStudentSuccess({required this.studentData});
|
|
||||||
}
|
|
||||||
|
|
||||||
// general
|
|
||||||
class StudentErrorValidation extends StudentState {
|
|
||||||
final String errorMessage;
|
|
||||||
StudentErrorValidation({
|
|
||||||
required this.errorMessage,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// add student state
|
|
||||||
class AddStudentWaiting extends StudentState {}
|
|
||||||
|
|
||||||
class AddStudentError extends StudentState {
|
|
||||||
final String errorMessage;
|
|
||||||
AddStudentError({
|
|
||||||
required this.errorMessage,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
class AddStudentSuccess extends StudentState {
|
|
||||||
final int studentId;
|
|
||||||
final String msg,
|
|
||||||
studentName,
|
|
||||||
studentPhoneNumber,
|
|
||||||
studentGender,
|
|
||||||
studentAddress;
|
|
||||||
AddStudentSuccess(
|
|
||||||
{required this.msg,
|
|
||||||
required this.studentId,
|
|
||||||
required this.studentName,
|
|
||||||
required this.studentPhoneNumber,
|
|
||||||
required this.studentGender,
|
|
||||||
required this.studentAddress});
|
|
||||||
}
|
|
||||||
|
|
||||||
// edit student state
|
|
||||||
class EditStudentWaiting extends StudentState {}
|
|
||||||
|
|
||||||
class EditStudentError extends StudentState {
|
|
||||||
final String errorMessage;
|
|
||||||
EditStudentError({
|
|
||||||
required this.errorMessage,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
class EditStudentSuccess extends StudentState {
|
|
||||||
final int studentId, index;
|
|
||||||
final String msg,
|
|
||||||
studentName,
|
|
||||||
studentPhoneNumber,
|
|
||||||
studentGender,
|
|
||||||
studentAddress;
|
|
||||||
EditStudentSuccess(
|
|
||||||
{required this.msg,
|
|
||||||
required this.index,
|
|
||||||
required this.studentId,
|
|
||||||
required this.studentName,
|
|
||||||
required this.studentPhoneNumber,
|
|
||||||
required this.studentGender,
|
|
||||||
required this.studentAddress});
|
|
||||||
}
|
|
||||||
|
|
||||||
// delete student state
|
|
||||||
class DeleteStudentWaiting extends StudentState {}
|
|
||||||
|
|
||||||
class DeleteStudentError extends StudentState {
|
|
||||||
final String errorMessage;
|
|
||||||
DeleteStudentError({
|
|
||||||
required this.errorMessage,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
class DeleteStudentSuccess extends StudentState {
|
|
||||||
final String msg;
|
|
||||||
final int index;
|
|
||||||
DeleteStudentSuccess({required this.msg, required this.index});
|
|
||||||
}
|
|
||||||
|
|
@ -17,7 +17,6 @@ import 'package:mobdr/ui/reusable/cache_image_network.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import 'package:mobdr/service/local_storage.dart';
|
import 'package:mobdr/service/local_storage.dart';
|
||||||
import 'package:mobdr/model/login.dart';
|
|
||||||
|
|
||||||
class TabHomePage extends StatefulWidget {
|
class TabHomePage extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue