Files
eatvio_app/lib/features/feed/repositories/feed_repository.dart
2024-11-14 17:29:19 +07:00

158 lines
3.1 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/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<Recipes>> 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,
}) async {
try {
return (await feedService.getDiets(
page: page,
query: query,
));
} 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<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;
}
}
}