forked from eatvio/eatvio_app
105 lines
4.1 KiB
Dart
105 lines
4.1 KiB
Dart
import 'package:dio/dio.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_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/post_feed_pagination_model.dart';
|
|
import 'package:eatvio_app/features/feed/models/recipes_pagination_model.dart';
|
|
import 'package:eatvio_app/features/feed/models/view_model.dart';
|
|
import 'package:retrofit/retrofit.dart';
|
|
|
|
part 'feed_service.g.dart';
|
|
|
|
@RestApi()
|
|
abstract class FeedService {
|
|
factory FeedService(Dio dio, {String baseUrl}) = _FeedService;
|
|
|
|
@GET('/api/blogPosts/index')
|
|
Future<FeedBlogPostSettingsModel> getBlogPostList({@Query('page') required int page, @Query('query_search') String? query});
|
|
|
|
@GET('/api/feed')
|
|
Future<PostFeedPaginationModel> getFeed({
|
|
@Query('search') String? search,
|
|
@Query('cursor') String? cursor,
|
|
});
|
|
|
|
@GET('/api/v2/blogPosts/show/{postId}')
|
|
Future<FeedBlogPostModel> getBlogPost({@Path('postId') required int postId});
|
|
|
|
@GET('/api/recipes/index')
|
|
Future<RecipesPagination> getRecipes({
|
|
@Query('page') required int page,
|
|
@Query('filters[tags][tags.id][\$in][]') required List<int>? tags,
|
|
@Query('filters[title][\$contains]') required String? query,
|
|
});
|
|
|
|
@GET('/api/diets/index')
|
|
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/plans/index')
|
|
Future<PlanPaginationModel> getPlans({
|
|
@Query('page') required int page,
|
|
@Query('filters[name][\$startsWith]') String? query,
|
|
@Query('filters[type][\$contains]') String? types,
|
|
@Query('filters[duration][\$eq]') int? duration,
|
|
@Query('filters[min_price_of_options][\$between][0]') int? minPrice,
|
|
@Query('filters[min_price_of_options][\$between][1]') int? maxPrice,
|
|
});
|
|
|
|
@GET('/api/blogPosts/{id}/comments/show')
|
|
Future<CommentModel> getBlogPostComments({@Path() required String id});
|
|
|
|
@POST('/api/blogPosts/{id}/comment/create')
|
|
Future<void> sendBlogPostComment({@Path() required String id, @Part() required String body, @Part() int? parentCommentId});
|
|
|
|
@GET('/api/diets/{id}/comments/show')
|
|
Future<CommentModel> getDietsComments({@Path() required String id});
|
|
|
|
@POST('/api/diets/{id}/comment/create')
|
|
Future<void> sendDietsComment({@Path() required String id, @Part() required String body, @Part() int? parentCommentId});
|
|
|
|
@GET('/api/plans/{slug}/comments/show')
|
|
Future<CommentModel> getPlansComments({@Path() required String slug});
|
|
|
|
@POST('/api/plans/{slug}/comment/create')
|
|
Future<void> sendPlansComment({@Path() required String slug, @Part() required String body, @Part() int? parentCommentId});
|
|
|
|
@GET('/api/recipes/{id}/comments/show')
|
|
Future<CommentModel> getRecipesComments({@Path() required String id});
|
|
|
|
@POST('/api/recipes/{id}/comment/create')
|
|
Future<void> sendRecipesComment({@Path() required String id, @Part() required String body, @Part() int? parentCommentId});
|
|
|
|
@POST('/api/blogPosts/{id}/like')
|
|
Future<void> likeBlogPost({@Path() required int id});
|
|
|
|
@POST('/api/blogPosts/{id}/unliked')
|
|
Future<void> unlikedBlogPost({@Path() required int id});
|
|
|
|
@GET('/api/consultants/index')
|
|
Future<FeedConsultantPaginationModel> getConsultants({@Query('filters[name][\$startsWith]') String? name});
|
|
|
|
@POST('/api/blogPosts/{id}/view')
|
|
Future<void> viewPost({@Path() required int id});
|
|
|
|
@POST('/api/recipes/{slug}/view')
|
|
Future<void> viewRecipe({@Path() required String slug});
|
|
|
|
@POST('/api/diets/{id}/view')
|
|
Future<void> viewDiet({@Path() required int id});
|
|
|
|
@POST('/api/plans/{slug}/view')
|
|
Future<void> viewPlan({@Path() required String slug});
|
|
|
|
@POST('/api/views')
|
|
Future<void> viewContent({@Body() required ViewModel viewModel});
|
|
}
|