forked from eatvio/eatvio_app
60 lines
1.6 KiB
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,
|
|
});
|
|
}
|