moved diets logic to a diets folder

This commit is contained in:
Username1548
2024-11-20 18:35:58 +07:00
parent 39d6348ba1
commit 7260d70d3f
13 changed files with 38 additions and 9 deletions

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'dart:developer';
import 'package:easy_debounce/easy_debounce.dart';
import 'package:eatvio_app/core/data/diet/repositories/diet_repository.dart';
import 'package:eatvio_app/features/diets/repositories/diet_repository.dart';
import 'package:eatvio_app/features/diets/presentation/bloc/about_diet_state.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

View File

@@ -1,7 +1,7 @@
import 'dart:async';
import 'package:eatvio_app/core/data/diet/models/diet_likes_model.dart';
import 'package:eatvio_app/core/data/diet/services/diet_service.dart';
import 'package:eatvio_app/features/diets/models/diet_likes_model.dart';
import 'package:eatvio_app/features/diets/services/diet_service.dart';
import 'package:eatvio_app/features/feed/models/diets_pagination_model.dart';
import 'package:equatable/equatable.dart';

View File

@@ -1,5 +1,5 @@
import 'package:dio/dio.dart';
import 'package:eatvio_app/core/data/diet/models/diet_likes_model.dart';
import 'package:eatvio_app/features/diets/models/diet_likes_model.dart';
import 'package:eatvio_app/features/feed/models/diets_pagination_model.dart';
import 'package:retrofit/retrofit.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'dart:developer';
import 'package:easy_debounce/easy_debounce.dart';
import 'package:eatvio_app/core/data/diet/repositories/diet_repository.dart';
import 'package:eatvio_app/features/diets/repositories/diet_repository.dart';
import 'package:eatvio_app/features/feed/presentation/bloc/diets_cubit/diets_state.dart';
import 'package:eatvio_app/features/feed/repositories/feed_repository.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
@@ -14,6 +14,9 @@ class DietsCubit extends Cubit<DietsState> {
late int lastPage;
bool isLoading = false;
String? _query;
String? _types;
int? _duration;
String? _sorting;
late final StreamSubscription likesStateSubscription;
late final StreamSubscription favoriteStateSubscription;
late final StreamSubscription commentsStateSubscription;
@@ -42,11 +45,20 @@ class DietsCubit extends Cubit<DietsState> {
loadDiets({
String? query,
String? types,
int? duration,
String? sorting,
}) async {
try {
_query = query;
_types = types;
_duration = duration;
_sorting = sorting;
final dietsPagination = await feedRepository.getDiets(
query: query,
types: types,
duration: duration,
sorting: sorting,
);
lastPage = dietsPagination.meta.lastPage;
emit(
@@ -76,6 +88,9 @@ class DietsCubit extends Cubit<DietsState> {
final dietPagination = await feedRepository.getDiets(
page: currentPage,
query: _query,
types: _types,
duration: _duration,
sorting: _sorting,
);
isLoading = false;
emit(

View File

@@ -537,7 +537,7 @@ class _FeedScreenState extends State<FeedScreen> {
recipesCubit.loadRecipesList();
break;
case 2:
dietsCubit.loadDiets(query: query);
dietsCubit.loadDiets(query: query == '' ? null : query);
break;
}
},

View File

@@ -45,11 +45,17 @@ class FeedRepository {
Future<DietsPagination> getDiets({
int page = 1,
String? query,
String? types,
int? duration,
String? sorting,
}) async {
try {
return (await feedService.getDiets(
page: page,
query: query,
types: types,
duration: duration,
sorting: sorting,
));
} catch (e) {
rethrow;
@@ -153,5 +159,4 @@ class FeedRepository {
rethrow;
}
}
}

View File

@@ -28,6 +28,9 @@ abstract class FeedService {
Future<DietsPagination> getDiets({
@Query('page') required int page,
@Query('filters[name][\$startsWith]') String? query,
@Query('filters[type][\$contains]') String? types,
@Query('filters[duration][\$eq]') int? duration,
@Query('sort') String? sorting,
});
@GET('/api/blogPosts/{id}/comments/show')

View File

@@ -107,11 +107,17 @@ class _FeedService implements FeedService {
Future<DietsPagination> getDiets({
required int page,
String? query,
String? types,
int? duration,
String? sorting,
}) async {
final _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{
r'page': page,
r'filters[name][$startsWith]': query,
r'filters[type][$contains]': types,
r'filters[duration][$eq]': duration,
r'sort': sorting,
};
queryParameters.removeWhere((k, v) => v == null);
final _headers = <String, dynamic>{};

View File

@@ -1,7 +1,7 @@
import 'package:dio/dio.dart';
import 'package:eatvio_app/core/const.dart';
import 'package:eatvio_app/core/data/diet/repositories/diet_repository.dart';
import 'package:eatvio_app/core/data/diet/services/diet_service.dart';
import 'package:eatvio_app/features/diets/repositories/diet_repository.dart';
import 'package:eatvio_app/features/diets/services/diet_service.dart';
import 'package:eatvio_app/core/initialization_cubit/initialization_cubit.dart';
import 'package:eatvio_app/features/bottom_navigation_bar/presentation/bloc/new_messages_cubit/new_messages_cubit.dart';
import 'package:eatvio_app/features/bottom_navigation_bar/presentation/bloc/notifications_cubit/notifications_cubit.dart';