elCaribe app - customization and branding
This commit is contained in:
43
news-app/lib/cubits/Author/authorCubit.dart
Normal file
43
news-app/lib/cubits/Author/authorCubit.dart
Normal file
@@ -0,0 +1,43 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:news/utils/api.dart';
|
||||
import 'package:news/utils/strings.dart';
|
||||
|
||||
abstract class AuthorState {}
|
||||
|
||||
class AuthorInitial extends AuthorState {}
|
||||
|
||||
class AuthorInProgress extends AuthorState {}
|
||||
|
||||
class AuthorApproved extends AuthorState {
|
||||
AuthorApproved();
|
||||
}
|
||||
|
||||
class AuthorRequestSent extends AuthorState {
|
||||
final String responseMessage;
|
||||
AuthorRequestSent(this.responseMessage);
|
||||
}
|
||||
|
||||
class AuthorPending extends AuthorState {
|
||||
final String errorMessage;
|
||||
|
||||
AuthorPending(this.errorMessage);
|
||||
}
|
||||
|
||||
class AuthorRejected extends AuthorState {
|
||||
final String errorMessage;
|
||||
|
||||
AuthorRejected(this.errorMessage);
|
||||
}
|
||||
|
||||
class AuthorCubit extends Cubit<AuthorState> {
|
||||
AuthorCubit() : super(AuthorInitial());
|
||||
|
||||
void requestToBecomeAuthor() async {
|
||||
try {
|
||||
final result = await Api.sendApiRequest(body: {}, url: Api.becomeAnAuthorApi);
|
||||
(!result[ERROR]) ? emit(AuthorRequestSent(result[MESSAGE])) : emit(AuthorPending(result[MESSAGE]));
|
||||
} catch (e) {
|
||||
emit(AuthorPending(e.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
49
news-app/lib/cubits/Author/authorNewsCubit.dart
Normal file
49
news-app/lib/cubits/Author/authorNewsCubit.dart
Normal file
@@ -0,0 +1,49 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:news/data/models/NewsModel.dart';
|
||||
import 'package:news/utils/api.dart';
|
||||
import 'package:news/utils/strings.dart';
|
||||
|
||||
abstract class AuthorNewsState {}
|
||||
|
||||
class AuthorNewsInitial extends AuthorNewsState {}
|
||||
|
||||
class AuthorNewsFetchInProgress extends AuthorNewsState {}
|
||||
|
||||
class AuthorNewsFetchSuccess extends AuthorNewsState {
|
||||
final List<NewsModel> AuthorNewsList;
|
||||
final UserAuthorModel authorData;
|
||||
final int totalAuthorNewsCount;
|
||||
final bool hasMoreFetchError;
|
||||
final bool hasMore;
|
||||
|
||||
AuthorNewsFetchSuccess({required this.AuthorNewsList, required this.authorData, required this.totalAuthorNewsCount, required this.hasMoreFetchError, required this.hasMore});
|
||||
}
|
||||
|
||||
class AuthorNewsFetchFailed extends AuthorNewsState {
|
||||
final String errorMessage;
|
||||
|
||||
AuthorNewsFetchFailed(this.errorMessage);
|
||||
}
|
||||
|
||||
class AuthorNewsCubit extends Cubit<AuthorNewsState> {
|
||||
AuthorNewsCubit() : super(AuthorNewsInitial());
|
||||
|
||||
void getAuthorNews({required String authorId}) async {
|
||||
try {
|
||||
emit(AuthorNewsInitial());
|
||||
final apiUrl = "${Api.getAuthorNewsApi}/${authorId}";
|
||||
final result = await Api.sendApiRequest(body: null, url: apiUrl, isGet: true);
|
||||
|
||||
(!result[ERROR])
|
||||
? emit(AuthorNewsFetchSuccess(
|
||||
AuthorNewsList: (result[DATA][NEWS][DATA] as List).map((e) => NewsModel.fromJson(e)).toList(),
|
||||
authorData: UserAuthorModel.fromJson(result[DATA][USER]),
|
||||
totalAuthorNewsCount: result[DATA][NEWS][TOTAL],
|
||||
hasMore: false,
|
||||
hasMoreFetchError: false))
|
||||
: emit(AuthorNewsFetchFailed(result[MESSAGE]));
|
||||
} catch (e) {
|
||||
emit(AuthorNewsFetchFailed(e.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user