Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Alba María Álvarez
/
AppRecetas
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
5b27c405
authored
Sep 10, 2025
by
Alba María Álvarez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
bugfix(recipe): eliminado uso de RecipeDocument en las interfaces CRUD de receta
parent
3e985f7d
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
84 additions
and
81 deletions
src/main/java/com/example/apprecetas/recipe/application/impl/CreateRecipeUseCaseImpl.java
src/main/java/com/example/apprecetas/recipe/application/impl/DeleteRecipeUseCaseImpl.java
src/main/java/com/example/apprecetas/recipe/application/impl/ReadRecipeUseCaseImpl.java
src/main/java/com/example/apprecetas/recipe/application/impl/UpdateRecipeUseCaseImpl.java
src/main/java/com/example/apprecetas/recipe/domain/repository/CreateRecipeRepository.java
src/main/java/com/example/apprecetas/recipe/domain/repository/DeleteRecipeRepository.java
src/main/java/com/example/apprecetas/recipe/domain/repository/ReadRecipeRepository.java
src/main/java/com/example/apprecetas/recipe/domain/repository/UpdateRecipeRepository.java
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/CreateRecipeRepositoryImpl.java
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/DeleteRecipeRepositoryImpl.java
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/ReadRecipeRepositoryImpl.java
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/UpdateRecipeRepositoryImpl.java
src/main/java/com/example/apprecetas/recipe/application/impl/CreateRecipeUseCaseImpl.java
View file @
5b27c405
...
@@ -3,38 +3,17 @@ package com.example.apprecetas.recipe.application.impl;
...
@@ -3,38 +3,17 @@ package com.example.apprecetas.recipe.application.impl;
import
com.example.apprecetas.recipe.application.CreateRecipeUseCase
;
import
com.example.apprecetas.recipe.application.CreateRecipeUseCase
;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
import
com.example.apprecetas.recipe.domain.repository.CreateRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.CreateRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.mapper.RecipeMapper
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.security.core.context.SecurityContextHolder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDateTime
;
@Service
@Service
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
CreateRecipeUseCaseImpl
implements
CreateRecipeUseCase
{
public
class
CreateRecipeUseCaseImpl
implements
CreateRecipeUseCase
{
private
final
CreateRecipeRepository
createRecipeRepository
;
private
final
CreateRecipeRepository
createRecipeRepository
;
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
@Override
@Override
public
Recipe
create
(
Recipe
recipe
)
{
public
Recipe
create
(
Recipe
recipe
)
{
RecipeDocument
recipeDocument
=
mapper
.
mapDocument
(
recipe
);
return
createRecipeRepository
.
create
(
recipe
);
// Obtener userId del token
String
userId
=
SecurityContextHolder
.
getContext
().
getAuthentication
().
getName
();
// Añadir userId
recipeDocument
.
setUserId
(
userId
);
// Valores por defecto
recipeDocument
.
setFavorite
(
false
);
recipeDocument
.
setCreatedAt
(
LocalDateTime
.
now
());
RecipeDocument
savedRecipe
=
createRecipeRepository
.
create
(
recipeDocument
);
return
mapper
.
mapDocument
(
savedRecipe
);
}
}
}
}
src/main/java/com/example/apprecetas/recipe/application/impl/DeleteRecipeUseCaseImpl.java
View file @
5b27c405
package
com
.
example
.
apprecetas
.
recipe
.
application
.
impl
;
package
com
.
example
.
apprecetas
.
recipe
.
application
.
impl
;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.recipe.application.DeleteRecipeUseCase
;
import
com.example.apprecetas.recipe.application.DeleteRecipeUseCase
;
import
com.example.apprecetas.recipe.domain.repository.DeleteRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.DeleteRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.ReadRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -13,12 +10,9 @@ import org.springframework.stereotype.Service;
...
@@ -13,12 +10,9 @@ import org.springframework.stereotype.Service;
public
class
DeleteRecipeUseCaseImpl
implements
DeleteRecipeUseCase
{
public
class
DeleteRecipeUseCaseImpl
implements
DeleteRecipeUseCase
{
private
final
DeleteRecipeRepository
deleteRepository
;
private
final
DeleteRecipeRepository
deleteRepository
;
private
final
ReadRecipeRepository
readRepository
;
@Override
@Override
public
void
delete
(
String
id
)
{
public
void
delete
(
String
id
)
{
RecipeDocument
recipeDocument
=
readRepository
.
readById
(
id
)
deleteRepository
.
delete
(
id
);
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Receta con id "
+
id
+
" no encontrada"
));
deleteRepository
.
delete
(
recipeDocument
);
}
}
}
}
src/main/java/com/example/apprecetas/recipe/application/impl/ReadRecipeUseCaseImpl.java
View file @
5b27c405
package
com
.
example
.
apprecetas
.
recipe
.
application
.
impl
;
package
com
.
example
.
apprecetas
.
recipe
.
application
.
impl
;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.recipe.application.ReadRecipeUseCase
;
import
com.example.apprecetas.recipe.application.ReadRecipeUseCase
;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
import
com.example.apprecetas.recipe.domain.repository.ReadRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.ReadRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.mapper.RecipeMapper
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -18,30 +14,23 @@ public class ReadRecipeUseCaseImpl implements ReadRecipeUseCase {
...
@@ -18,30 +14,23 @@ public class ReadRecipeUseCaseImpl implements ReadRecipeUseCase {
private
final
ReadRecipeRepository
repository
;
private
final
ReadRecipeRepository
repository
;
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
@Override
@Override
public
Recipe
readById
(
String
id
)
{
public
Recipe
readById
(
String
id
)
{
RecipeDocument
recipeDocument
=
repository
.
readById
(
id
)
return
repository
.
readById
(
id
);
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Receta con id "
+
id
+
" no encontrada"
));
return
mapper
.
mapDocument
(
recipeDocument
);
}
}
@Override
@Override
public
Page
<
Recipe
>
readAllByUser
(
String
userId
,
Pageable
pageable
)
{
public
Page
<
Recipe
>
readAllByUser
(
String
userId
,
Pageable
pageable
)
{
return
repository
.
readAllByUser
(
userId
,
pageable
)
return
repository
.
readAllByUser
(
userId
,
pageable
);
.
map
(
mapper:
:
mapDocument
);
}
}
@Override
@Override
public
Page
<
Recipe
>
readFavoritesByUser
(
String
userId
,
Pageable
pageable
)
{
public
Page
<
Recipe
>
readFavoritesByUser
(
String
userId
,
Pageable
pageable
)
{
return
repository
.
readFavoritesByUser
(
userId
,
pageable
)
return
repository
.
readFavoritesByUser
(
userId
,
pageable
);
.
map
(
mapper:
:
mapDocument
);
}
}
@Override
@Override
public
Page
<
Recipe
>
searchRecipes
(
String
userId
,
String
query
,
Pageable
pageable
)
{
public
Page
<
Recipe
>
searchRecipes
(
String
userId
,
String
query
,
Pageable
pageable
)
{
return
repository
.
searchRecipes
(
userId
,
query
,
query
,
pageable
)
return
repository
.
searchRecipes
(
userId
,
query
,
query
,
pageable
);
.
map
(
mapper:
:
mapDocument
);
}
}
}
}
src/main/java/com/example/apprecetas/recipe/application/impl/UpdateRecipeUseCaseImpl.java
View file @
5b27c405
...
@@ -19,9 +19,7 @@ public class UpdateRecipeUseCaseImpl implements UpdateRecipeUseCase {
...
@@ -19,9 +19,7 @@ public class UpdateRecipeUseCaseImpl implements UpdateRecipeUseCase {
@Override
@Override
public
Recipe
update
(
String
id
,
Recipe
recipe
)
{
public
Recipe
update
(
String
id
,
Recipe
recipe
)
{
RecipeDocument
recipeDocument
=
mapper
.
mapDocument
(
recipe
);
return
repository
.
update
(
id
,
recipe
);
RecipeDocument
updatedRecipe
=
repository
.
update
(
id
,
recipeDocument
);
return
mapper
.
mapDocument
(
updatedRecipe
);
}
}
@Override
@Override
...
...
src/main/java/com/example/apprecetas/recipe/domain/repository/CreateRecipeRepository.java
View file @
5b27c405
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
import
com.example.apprecetas.recipe.
infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.
domain.entity.Recipe
;
public
interface
CreateRecipeRepository
{
public
interface
CreateRecipeRepository
{
Recipe
Document
create
(
RecipeDocument
recipeDocument
);
Recipe
create
(
Recipe
recipe
);
}
}
src/main/java/com/example/apprecetas/recipe/domain/repository/DeleteRecipeRepository.java
View file @
5b27c405
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
import
com.example.apprecetas.recipe.
infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.
domain.entity.Recipe
;
public
interface
DeleteRecipeRepository
{
public
interface
DeleteRecipeRepository
{
void
delete
(
RecipeDocument
recipeDocument
);
void
delete
(
String
id
);
}
}
src/main/java/com/example/apprecetas/recipe/domain/repository/ReadRecipeRepository.java
View file @
5b27c405
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
import
com.example.apprecetas.recipe.
infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.
domain.entity.Recipe
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
java.util.Optional
;
public
interface
ReadRecipeRepository
{
public
interface
ReadRecipeRepository
{
Optional
<
RecipeDocument
>
readById
(
String
id
);
Recipe
readById
(
String
id
);
Page
<
Recipe
Document
>
readAllByUser
(
String
userId
,
Pageable
pageable
);
Page
<
Recipe
>
readAllByUser
(
String
userId
,
Pageable
pageable
);
Page
<
Recipe
Document
>
readFavoritesByUser
(
String
userId
,
Pageable
pageable
);
Page
<
Recipe
>
readFavoritesByUser
(
String
userId
,
Pageable
pageable
);
Page
<
Recipe
Document
>
searchRecipes
(
String
userId
,
String
name
,
String
ingredients
,
Pageable
pageable
);
Page
<
Recipe
>
searchRecipes
(
String
userId
,
String
name
,
String
ingredients
,
Pageable
pageable
);
}
}
src/main/java/com/example/apprecetas/recipe/domain/repository/UpdateRecipeRepository.java
View file @
5b27c405
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
import
com.example.apprecetas.recipe.
infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.
domain.entity.Recipe
;
public
interface
UpdateRecipeRepository
{
public
interface
UpdateRecipeRepository
{
Recipe
Document
update
(
String
id
,
RecipeDocument
recipeDocument
);
Recipe
update
(
String
id
,
Recipe
recipe
);
void
madeFavorite
(
String
id
);
void
madeFavorite
(
String
id
);
...
...
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/CreateRecipeRepositoryImpl.java
View file @
5b27c405
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
import
com.example.apprecetas.recipe.domain.repository.CreateRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.CreateRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.mapper.RecipeMapper
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeRepository
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.security.core.context.SecurityContextHolder
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.time.LocalDateTime
;
@Repository
@Repository
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
CreateRecipeRepositoryImpl
implements
CreateRecipeRepository
{
public
class
CreateRecipeRepositoryImpl
implements
CreateRecipeRepository
{
private
final
RecipeRepository
recipeRepository
;
private
final
RecipeRepository
recipeRepository
;
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
@Override
@Override
public
RecipeDocument
create
(
RecipeDocument
recipeDocument
)
{
public
Recipe
create
(
Recipe
recipe
)
{
return
recipeRepository
.
save
(
recipeDocument
);
RecipeDocument
recipeDocument
=
mapper
.
mapDocument
(
recipe
);
// Obtener userId del token
String
userId
=
SecurityContextHolder
.
getContext
().
getAuthentication
().
getName
();
// Añadir userId
recipeDocument
.
setUserId
(
userId
);
// Valores por defecto
recipeDocument
.
setFavorite
(
false
);
recipeDocument
.
setCreatedAt
(
LocalDateTime
.
now
());
return
mapper
.
mapDocument
(
recipeRepository
.
save
(
mapper
.
mapDocument
(
recipe
)));
}
}
}
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/DeleteRecipeRepositoryImpl.java
View file @
5b27c405
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.recipe.domain.repository.DeleteRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.DeleteRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeRepository
;
...
@@ -13,7 +14,10 @@ public class DeleteRecipeRepositoryImpl implements DeleteRecipeRepository {
...
@@ -13,7 +14,10 @@ public class DeleteRecipeRepositoryImpl implements DeleteRecipeRepository {
private
final
RecipeRepository
recipeRepository
;
private
final
RecipeRepository
recipeRepository
;
@Override
@Override
public
void
delete
(
RecipeDocument
recipeDocument
)
{
public
void
delete
(
String
id
)
{
RecipeDocument
recipeDocument
=
recipeRepository
.
findById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Receta con id "
+
id
+
" no encontrada"
));
recipeRepository
.
delete
(
recipeDocument
);
recipeRepository
.
delete
(
recipeDocument
);
}
}
}
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/ReadRecipeRepositoryImpl.java
View file @
5b27c405
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
import
com.example.apprecetas.recipe.domain.repository.ReadRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.ReadRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.mapper.RecipeMapper
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeRepository
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.Optional
;
@Repository
@Repository
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
ReadRecipeRepositoryImpl
implements
ReadRecipeRepository
{
public
class
ReadRecipeRepositoryImpl
implements
ReadRecipeRepository
{
private
final
RecipeRepository
recipeRepository
;
private
final
RecipeRepository
recipeRepository
;
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
@Override
@Override
public
Optional
<
RecipeDocument
>
readById
(
String
id
)
{
public
Recipe
readById
(
String
id
)
{
return
recipeRepository
.
findById
(
id
);
RecipeDocument
recipeDocument
=
recipeRepository
.
findById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Receta con id "
+
id
+
" no encontrada"
));
return
mapper
.
mapDocument
(
recipeDocument
);
}
}
@Override
@Override
public
Page
<
RecipeDocument
>
readAllByUser
(
String
userId
,
Pageable
pageable
)
{
public
Page
<
Recipe
>
readAllByUser
(
String
userId
,
Pageable
pageable
)
{
return
recipeRepository
.
findByUserId
(
userId
,
pageable
);
return
recipeRepository
.
findByUserId
(
userId
,
pageable
)
.
map
(
mapper:
:
mapDocument
);
}
}
@Override
@Override
public
Page
<
RecipeDocument
>
readFavoritesByUser
(
String
userId
,
Pageable
pageable
)
{
public
Page
<
Recipe
>
readFavoritesByUser
(
String
userId
,
Pageable
pageable
)
{
return
recipeRepository
.
findByUserIdAndIsFavoriteTrue
(
userId
,
pageable
);
return
recipeRepository
.
findByUserIdAndIsFavoriteTrue
(
userId
,
pageable
)
.
map
(
mapper:
:
mapDocument
);
}
}
@Override
@Override
public
Page
<
RecipeDocument
>
searchRecipes
(
String
userId
,
String
name
,
String
ingredients
,
Pageable
pageable
)
{
public
Page
<
Recipe
>
searchRecipes
(
String
userId
,
String
name
,
String
ingredients
,
Pageable
pageable
)
{
return
recipeRepository
.
findByUserIdAndNameIgnoreCaseContainingOrIngredientsNameIgnoreCaseContaining
(
userId
,
name
,
ingredients
,
pageable
);
return
recipeRepository
.
findByUserIdAndNameIgnoreCaseContainingOrIngredientsNameIgnoreCaseContaining
(
userId
,
name
,
ingredients
,
pageable
)
.
map
(
mapper:
:
mapDocument
);
}
}
}
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/UpdateRecipeRepositoryImpl.java
View file @
5b27c405
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
import
com.example.apprecetas.recipe.domain.repository.UpdateRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.UpdateRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.mapper.IngredientMapper
;
import
com.example.apprecetas.recipe.infrastructure.mapper.RecipeMapper
;
import
com.example.apprecetas.recipe.infrastructure.mapper.StepMapper
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.mongodb.RecipeRepository
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.stream.Collectors
;
@Repository
@Repository
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
UpdateRecipeRepositoryImpl
implements
UpdateRecipeRepository
{
public
class
UpdateRecipeRepositoryImpl
implements
UpdateRecipeRepository
{
private
final
RecipeRepository
recipeRepository
;
private
final
RecipeRepository
recipeRepository
;
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
private
final
IngredientMapper
ingredientMapper
=
Mappers
.
getMapper
(
IngredientMapper
.
class
);
private
final
StepMapper
stepMapper
=
Mappers
.
getMapper
(
StepMapper
.
class
);
@Override
@Override
public
Recipe
Document
update
(
String
id
,
RecipeDocument
recipeDocument
)
{
public
Recipe
update
(
String
id
,
Recipe
recipe
)
{
RecipeDocument
recipe
=
recipeRepository
.
findById
(
id
)
RecipeDocument
recipe
Document
=
recipeRepository
.
findById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Receta con id "
+
id
+
" no encontrada"
));
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Receta con id "
+
id
+
" no encontrada"
));
recipe
.
setName
(
recipeDocument
.
getName
());
recipe
Document
.
setName
(
recipe
.
getName
());
recipe
.
setDescription
(
recipeDocument
.
getDescription
());
recipe
Document
.
setDescription
(
recipe
.
getDescription
());
recipe
.
setPicture
(
recipeDocument
.
getPicture
());
recipe
Document
.
setPicture
(
recipe
.
getPicture
());
recipe
.
setIngredients
(
recipeDocument
.
getIngredients
(
));
recipe
Document
.
setIngredients
(
recipe
.
getIngredients
().
stream
().
map
(
ingredientMapper:
:
map
).
collect
(
Collectors
.
toList
()
));
recipe
.
setSteps
(
recipeDocument
.
getSteps
(
));
recipe
Document
.
setSteps
(
recipe
.
getSteps
().
stream
().
map
(
stepMapper:
:
map
).
collect
(
Collectors
.
toList
()
));
return
recipeRepository
.
save
(
recipe
);
RecipeDocument
updatedRecipe
=
recipeRepository
.
save
(
recipeDocument
);
return
mapper
.
mapDocument
(
updatedRecipe
);
}
}
@Override
@Override
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment