Files
eatvio_app/lib/features/feed/repositories/feed_repository.dart
2025-02-17 14:40:31 +07:00

221 lines
4.5 KiB
Dart

import 'package:eatvio_app/features/feed/models/comment_model.dart';
import 'package:eatvio_app/features/feed/models/diets_pagination_model.dart';
import 'package:eatvio_app/features/feed/models/feed_blog_post_settings_model.dart';
import 'package:eatvio_app/features/feed/models/feed_consultant_model.dart';
import 'package:eatvio_app/features/feed/models/plan_pagination_model.dart';
import 'package:eatvio_app/features/feed/models/recipes_model.dart';
import 'package:eatvio_app/features/feed/services/feed_service.dart';
class FeedRepository {
final FeedService feedService;
FeedRepository({
required this.feedService,
});
Future<FeedBlogPostSettingsModel> getFeedBlogPosts({
String? query,
int page = 1,
}) async {
try {
return (await feedService.getBlogPostList(
page: page,
query: query,
));
} catch (e) {
rethrow;
}
}
Future<List<Recipe>> getRecipes({
String? query,
List<int>? tags,
int page = 1,
}) async {
try {
return (await feedService.getRecipes(
query: query,
tags: tags,
page: page,
))
.recipesList;
} catch (e) {
rethrow;
}
}
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;
}
}
Future<PlanPaginationModel> getPlans({
int page = 1,
String? query,
String? types,
int? duration,
int? minPrice,
int? maxPrice,
}) async {
try {
return (await feedService.getPlans(
page: page,
query: query,
types: types,
duration: duration,
minPrice: minPrice,
maxPrice: maxPrice,
));
} catch (e) {
rethrow;
}
}
Future<CommentModel> getBlogPostComments({
required String id,
}) async {
try {
return (await feedService.getBlogPostComments(id: id));
} catch (e) {
rethrow;
}
}
Future<void> sendBlogPostComment({
required String id,
required String commentText,
int? parentCommentId,
}) async {
try {
await feedService.sendBlogPostComment(
id: id,
body: commentText,
parentCommentId: parentCommentId,
);
} catch (e) {
rethrow;
}
}
Future<CommentModel> getDietsComments({
required String id,
}) async {
try {
return (await feedService.getDietsComments(id: id));
} catch (e) {
rethrow;
}
}
Future<void> sendDietsComment({
required String id,
required String commentText,
int? parentCommentId,
}) async {
try {
await feedService.sendDietsComment(
id: id,
body: commentText,
parentCommentId: parentCommentId,
);
} catch (e) {
rethrow;
}
}
Future<CommentModel> getRecipesComments({
required String id,
}) async {
try {
return (await feedService.getRecipesComments(id: id));
} catch (e) {
rethrow;
}
}
Future<void> sendRecipesComment({
required String id,
required String commentText,
int? parentCommentId,
}) async {
try {
await feedService.sendRecipesComment(
id: id,
body: commentText,
parentCommentId: parentCommentId,
);
} catch (e) {
rethrow;
}
}
Future<CommentModel> getPlansComments({
required String slug,
}) async {
try {
return (await feedService.getPlansComments(slug: slug));
} catch (e) {
rethrow;
}
}
Future<void> sendPlansComment({
required String slug,
required String commentText,
int? parentCommentId,
}) async {
try {
await feedService.sendPlansComment(
slug: slug,
body: commentText,
parentCommentId: parentCommentId,
);
} catch (e) {
rethrow;
}
}
Future<void> likeBlogPost({
required int id,
}) async {
try {
await feedService.likeBlogPost(id: id);
} catch (e) {
rethrow;
}
}
Future<void> unlikedBlogPost({
required int id,
}) async {
try {
await feedService.unlikedBlogPost(id: id);
} catch (e) {
rethrow;
}
}
Future<List<FeedConsultantModel>> getConsultants() async {
try {
return (await feedService.getConsultants()).data;
} catch (e) {
rethrow;
}
}
}