diff --git a/lib/features/blog_post/services/blog_post_service.dart b/lib/features/blog_post/services/blog_post_service.dart index 00d8e560..dfbc3618 100644 --- a/lib/features/blog_post/services/blog_post_service.dart +++ b/lib/features/blog_post/services/blog_post_service.dart @@ -8,6 +8,6 @@ part 'blog_post_service.g.dart'; abstract class BlogPostService { factory BlogPostService(Dio dio, {String baseUrl}) = _BlogPostService; - @GET('/api/feed/show/{id}') + @GET('/api/blogPosts/show/{id}') Future getBlogPost(@Path() String id); } diff --git a/lib/features/blog_post/services/blog_post_service.g.dart b/lib/features/blog_post/services/blog_post_service.g.dart index 40905775..5ea30fcb 100644 --- a/lib/features/blog_post/services/blog_post_service.g.dart +++ b/lib/features/blog_post/services/blog_post_service.g.dart @@ -32,7 +32,7 @@ class _BlogPostService implements BlogPostService { ) .compose( _dio.options, - '/api/feed/show/${id}', + '/api/blogPosts/show/${id}', queryParameters: queryParameters, data: _data, ) diff --git a/lib/features/blog_post_create/presentation/pages/blog_post_create_screen.dart b/lib/features/blog_post_create/presentation/pages/blog_post_create_screen.dart index 755ce127..53628bc2 100644 --- a/lib/features/blog_post_create/presentation/pages/blog_post_create_screen.dart +++ b/lib/features/blog_post_create/presentation/pages/blog_post_create_screen.dart @@ -44,7 +44,6 @@ class BlogPostCreateScreen extends StatelessWidget { } _buildBlogPostCreate(BuildContext context, BlogPostCreateLoadedState state) { - print(state.image); return Scaffold( resizeToAvoidBottomInset: false, body: Container( diff --git a/lib/features/feed/presentation/bloc/feed_cubit/feed_cubit.dart b/lib/features/feed/presentation/bloc/feed_cubit/feed_cubit.dart index 02ee7671..c052c26b 100644 --- a/lib/features/feed/presentation/bloc/feed_cubit/feed_cubit.dart +++ b/lib/features/feed/presentation/bloc/feed_cubit/feed_cubit.dart @@ -8,7 +8,6 @@ class FeedCubit extends Cubit { FeedCubit({required this.feedRepository}) : super(const FeedState.loading()); loadFeedBlogPostList() async { - emit(const FeedState.loading()); try { final feedBlogPostList = await feedRepository.getFeedBlogPostList(); emit(FeedState.loaded(feedBlogPostList: feedBlogPostList)); diff --git a/lib/presentation/feed/blog_post_create_screen/bloc/blog_post_create_bloc.dart b/lib/presentation/feed/blog_post_create_screen/bloc/blog_post_create_bloc.dart index 624a1ef4..654e963e 100644 --- a/lib/presentation/feed/blog_post_create_screen/bloc/blog_post_create_bloc.dart +++ b/lib/presentation/feed/blog_post_create_screen/bloc/blog_post_create_bloc.dart @@ -1,6 +1,4 @@ import 'dart:async'; -import 'dart:convert'; - import 'package:dio/dio.dart'; import 'package:eatvio_app/app_router.dart'; import 'package:eatvio_app/locator_service.dart'; @@ -14,6 +12,7 @@ import 'package:image_picker/image_picker.dart'; import '/core/app_export.dart'; part 'blog_post_create_event.dart'; + part 'blog_post_create_state.dart'; /// A bloc that manages the state of a BlogPostCreate according to the event that is dispatched to it. @@ -70,30 +69,30 @@ class BlogPostCreateBloc extends Bloc currentState.image, ); - if (response.statusCode == 200) { + if (response.statusCode == 200 || response.statusCode == 201) { AppRouter.navigatorKey.currentContext?.goNamed('feedScreen'); } else { print( - 'Failed to create blog post. Status Code: ${response.statusCode} ${response.body}', + 'Failed to create blog post. Status Code: ${response.statusCode} ${response.data}', ); } } } - sendBlogPost(String? title, String? youtubeURL, String? description, XFile? image) async { - String url = '/blog_post/create'; + Future sendBlogPost(String? title, String? youtubeURL, String? description, XFile? image) async { + String url = baseUrl + '/api/blogPosts/create'; - final Map credentials = { + FormData formData = FormData.fromMap({ 'title': title, 'description': description, - 'youtube_url': youtubeURL, - 'status': 'active', - 'image': image, - }; + 'videoUrl': youtubeURL, + 'state': 'active', + 'image': await MultipartFile.fromFile(image!.path, filename: image.name), + }); - var response = await sl().post( + final response = await sl().post( url, - data: json.encode(credentials), + data: formData, ); return response; @@ -102,11 +101,7 @@ class BlogPostCreateBloc extends Bloc FutureOr _uploadImages(UploadImages event, Emitter emit) { if (state is BlogPostCreateLoadedState) { var currentState = state as BlogPostCreateLoadedState; - emit( - currentState.copyWith( - image: event.image, - ), - ); + emit(currentState.copyWith(image: event.image)); } } } diff --git a/lib/presentation/feed/blog_post_create_screen/bloc/blog_post_create_state.dart b/lib/presentation/feed/blog_post_create_screen/bloc/blog_post_create_state.dart index 33dc59b5..8e0c8e87 100644 --- a/lib/presentation/feed/blog_post_create_screen/bloc/blog_post_create_state.dart +++ b/lib/presentation/feed/blog_post_create_screen/bloc/blog_post_create_state.dart @@ -14,6 +14,7 @@ class BlogPostCreateState extends Equatable { @override List get props => [blog_postModelObj]; + BlogPostCreateState copyWith({BlogPostCreateModel? blog_postModelObj}) { return BlogPostCreateState( blog_postModelObj: blog_postModelObj ?? this.blog_postModelObj, @@ -39,8 +40,18 @@ class BlogPostCreateLoadedState extends BlogPostCreateState { String? token; bool isLoading; XFile? image; + @override - List get props => [blog_postModelObj, title, description, youtubeURL]; + List get props => [ + blog_postModelObj, + title, + description, + youtubeURL, + token, + image, + isLoading, + ]; + BlogPostCreateLoadedState copyWith({ BlogPostCreateModel? blog_postModelObj, TextEditingController? title, diff --git a/lib/presentation/feed/blog_post_edit_screen/bloc/blog_post_edit_bloc.dart b/lib/presentation/feed/blog_post_edit_screen/bloc/blog_post_edit_bloc.dart index 02e496fa..c9c6bf9c 100644 --- a/lib/presentation/feed/blog_post_edit_screen/bloc/blog_post_edit_bloc.dart +++ b/lib/presentation/feed/blog_post_edit_screen/bloc/blog_post_edit_bloc.dart @@ -33,7 +33,7 @@ class BlogPostEditBloc extends Bloc { } final String? blog_postID = state.blog_postModelObj?.blog_postID; final response = await http.get( - Uri.parse(baseUrl + '/api/feed/show/$blog_postID'), + Uri.parse(baseUrl + '/api/blogPosts/show/$blog_postID'), headers: { 'Authorization': 'Bearer $token', }, diff --git a/lib/widgets/custom_edit_text_form_field.dart b/lib/widgets/custom_edit_text_form_field.dart index 0853d3e5..13a3df86 100644 --- a/lib/widgets/custom_edit_text_form_field.dart +++ b/lib/widgets/custom_edit_text_form_field.dart @@ -8,7 +8,7 @@ class CustomTextFormField extends StatelessWidget { this.width, this.controller, this.focusNode, - this.autofocus = true, + this.autofocus = false, this.textStyle, this.obscureText = false, this.textInputAction = TextInputAction.next,