60 lines
1.6 KiB
Dart
60 lines
1.6 KiB
Dart
import 'package:bloc/bloc.dart';
|
||
import 'package:dio/dio.dart';
|
||
import 'package:equatable/equatable.dart';
|
||
import 'package:flutter/foundation.dart';
|
||
import 'package:hoshan/core/services/api/courses_services.dart';
|
||
import 'package:hoshan/data/model/posts_model.dart';
|
||
|
||
part 'posts_state.dart';
|
||
|
||
class PostsCubit extends Cubit<PostsState> {
|
||
PostsCubit() : super(PostsInitial());
|
||
|
||
void getLastPosts() async {
|
||
print('🔵 getLastPosts called');
|
||
// Disabled enabled.json check - always show posts
|
||
// try {
|
||
// final check = await CoursesServices.dio.get('/enabled.json');
|
||
// print('<27> enabled.json: ${check.data}');
|
||
// if (check.data == false) {
|
||
// emit(PostsFail());
|
||
// return;
|
||
// }
|
||
// } catch (e) {
|
||
// // Ignore enabled.json check errors
|
||
// }
|
||
emit(PostsLoading());
|
||
try {
|
||
final posts = <PostsModel>[];
|
||
|
||
final response = await CoursesServices.dio.get(
|
||
CoursesServices.getPosts,
|
||
);
|
||
|
||
print('🟢 API Response: ${response.statusCode}');
|
||
print('🟢 Data type: ${response.data.runtimeType}');
|
||
print('🟢 Data length: ${response.data?.length}');
|
||
|
||
response.data.forEach((v) {
|
||
posts.add(PostsModel.fromJson(v));
|
||
});
|
||
|
||
if (kDebugMode) {
|
||
print('✅ Fetched ${posts.length} posts from WordPress');
|
||
}
|
||
|
||
emit(PostsSuccess(posts: posts));
|
||
} on DioException catch (e) {
|
||
emit(PostsFail());
|
||
if (kDebugMode) {
|
||
print('❌ Posts Error: ${e.message}');
|
||
}
|
||
} catch (e) {
|
||
emit(PostsFail());
|
||
if (kDebugMode) {
|
||
print('❌ Posts Error: $e');
|
||
}
|
||
}
|
||
}
|
||
}
|