forked from eatvio/eatvio_app
221 lines
4.5 KiB
Dart
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;
|
|
}
|
|
}
|
|
}
|