Files
eatvio_app/lib/features/create_recipe/services/recipe_service.dart

60 lines
1.6 KiB
Dart

import 'package:dio/dio.dart';
import 'package:eatvio_app/features/create_recipe/models/recipe_model.dart';
import 'package:eatvio_app/features/create_recipe/models/recipe_tag_model.dart';
import 'package:retrofit/retrofit.dart';
import 'package:eatvio_app/features/create_recipe/models/product.dart';
part 'recipe_service.g.dart';
@RestApi()
abstract class CreateRecipeService {
factory CreateRecipeService(Dio dio, {String baseUrl}) = _CreateRecipeService;
@POST('/api/recipes/{slug}/like')
Future<void> likeRecipe({
@Path() required String slug,
});
@POST('/api/recipes/{slug}/add_to_favorite')
Future<void> addToFavorite({
@Path() required String slug,
});
@POST('/api/recipes/{slug}/remove_from_favorite')
Future<void> removeFromFavorite({
@Path() required String slug,
});
@GET('/api/recipes/show/{id}')
Future<RecipeModel> getRecipe(@Path() String id);
@GET('/api/diary/product_nutritional_values/filter')
Future<Map<String, List<Product>>> getInputProduct(@Query('name') String name);
@POST('/api/recipes/create')
@MultiPart()
Future<HttpResponse<dynamic>> publishRecipe({
@Body() required FormData formData,
});
@GET('/api/recipes/tags')
Future<RecipeTagModel> getTags();
@DELETE('/api/recipes/delete/{slug}')
Future<void> deleteRecipe({
@Path() required String slug,
});
@POST('/api/recipes/update/{slug}')
@MultiPart()
Future<HttpResponse<dynamic>> updateRecipe({
@Path() required String slug,
@Body() required FormData formData,
});
@POST('/api/recipes/draft/{id}')
Future<void> draftRecipe({
@Path() required int id,
});
}