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
d8319638
authored
Jun 17, 2025
by
Alba María Álvarez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
perf(recipe): cambio a MongoDB
parent
f3a3de77
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
86 additions
and
115 deletions
src/main/java/com/example/apprecetas/recipe/application/DeleteRecipeUseCase.java
src/main/java/com/example/apprecetas/recipe/application/ReadRecipeUseCase.java
src/main/java/com/example/apprecetas/recipe/application/UpdateRecipeUseCase.java
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/entity/Recipe.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/controller/DeleteRecipeController.java
src/main/java/com/example/apprecetas/recipe/infrastructure/controller/ReadRecipeController.java
src/main/java/com/example/apprecetas/recipe/infrastructure/controller/UpdateRecipeController.java
src/main/java/com/example/apprecetas/recipe/infrastructure/controller/dto/input/RecipeInputDto.java
src/main/java/com/example/apprecetas/recipe/infrastructure/controller/dto/output/RecipeOutputDto.java
src/main/java/com/example/apprecetas/recipe/infrastructure/mapper/RecipeMapper.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/infrastructure/repository/jpa/RecipeRepositoryJpa.java
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/jpa/IngredientJpa.java → src/main/java/com/example/apprecetas/recipe/infrastructure/repository/mongodb/IngredientDocument.java
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/jpa/RecipeJpa.java → src/main/java/com/example/apprecetas/recipe/infrastructure/repository/mongodb/RecipeDocument.java
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/mongodb/RecipeRepository.java
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/jpa/StepJpa.java → src/main/java/com/example/apprecetas/recipe/infrastructure/repository/mongodb/StepDocument.java
src/main/java/com/example/apprecetas/recipe/application/DeleteRecipeUseCase.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
application
;
package
com
.
example
.
apprecetas
.
recipe
.
application
;
public
interface
DeleteRecipeUseCase
{
public
interface
DeleteRecipeUseCase
{
void
delete
(
Lo
ng
id
);
void
delete
(
Stri
ng
id
);
}
}
src/main/java/com/example/apprecetas/recipe/application/ReadRecipeUseCase.java
View file @
d8319638
...
@@ -5,7 +5,7 @@ import com.example.apprecetas.recipe.domain.entity.Recipe;
...
@@ -5,7 +5,7 @@ import com.example.apprecetas.recipe.domain.entity.Recipe;
import
java.util.List
;
import
java.util.List
;
public
interface
ReadRecipeUseCase
{
public
interface
ReadRecipeUseCase
{
Recipe
readById
(
Lo
ng
id
);
Recipe
readById
(
Stri
ng
id
);
List
<
Recipe
>
readAll
();
List
<
Recipe
>
readAll
();
}
}
src/main/java/com/example/apprecetas/recipe/application/UpdateRecipeUseCase.java
View file @
d8319638
...
@@ -3,5 +3,5 @@ package com.example.apprecetas.recipe.application;
...
@@ -3,5 +3,5 @@ package com.example.apprecetas.recipe.application;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
public
interface
UpdateRecipeUseCase
{
public
interface
UpdateRecipeUseCase
{
Recipe
update
(
Lo
ng
id
,
Recipe
recipe
);
Recipe
update
(
Stri
ng
id
,
Recipe
recipe
);
}
}
src/main/java/com/example/apprecetas/recipe/application/impl/CreateRecipeUseCaseImpl.java
View file @
d8319638
...
@@ -4,7 +4,7 @@ import com.example.apprecetas.recipe.application.CreateRecipeUseCase;
...
@@ -4,7 +4,7 @@ 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.mapper.RecipeMapper
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -19,16 +19,16 @@ public class CreateRecipeUseCaseImpl implements CreateRecipeUseCase {
...
@@ -19,16 +19,16 @@ public class CreateRecipeUseCaseImpl implements CreateRecipeUseCase {
@Override
@Override
public
Recipe
create
(
Recipe
recipe
)
{
public
Recipe
create
(
Recipe
recipe
)
{
Recipe
Jpa
recipeJpa
=
mapper
.
mapJpa
(
recipe
);
Recipe
Document
recipeDocument
=
mapper
.
mapDocument
(
recipe
);
recipeJpa
.
getSteps
().
forEach
(
step
->
{
/*recipeDocument.getSteps().forEach(step -> {
step
.
setRecipe
(
recipeJpa
);
step.setRecipe(recipeDocument);
});
recipeJpa
.
getIngredients
().
forEach
(
ingredient
->
{
ingredient
.
setRecipe
(
recipeJpa
);
});
});
recipeDocument.getIngredients().forEach(ingredient -> {
ingredient.setRecipe(recipeDocument);
});*/
Recipe
Jpa
savedRecipe
=
repository
.
create
(
recipeJpa
);
Recipe
Document
savedRecipe
=
repository
.
create
(
recipeDocument
);
return
mapper
.
map
Jpa
(
savedRecipe
);
return
mapper
.
map
Document
(
savedRecipe
);
}
}
}
}
src/main/java/com/example/apprecetas/recipe/application/impl/DeleteRecipeUseCaseImpl.java
View file @
d8319638
...
@@ -4,7 +4,7 @@ import com.example.apprecetas.exception.EntityNotFoundException;
...
@@ -4,7 +4,7 @@ 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.domain.repository.ReadRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
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
;
...
@@ -16,9 +16,9 @@ public class DeleteRecipeUseCaseImpl implements DeleteRecipeUseCase {
...
@@ -16,9 +16,9 @@ public class DeleteRecipeUseCaseImpl implements DeleteRecipeUseCase {
private
final
ReadRecipeRepository
readRepository
;
private
final
ReadRecipeRepository
readRepository
;
@Override
@Override
public
void
delete
(
Lo
ng
id
)
{
public
void
delete
(
Stri
ng
id
)
{
Recipe
Jpa
recipeJpa
=
readRepository
.
readById
(
id
)
Recipe
Document
recipeDocument
=
readRepository
.
readById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"La receta con id "
+
id
+
" no existe"
));
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"La receta con id "
+
id
+
" no existe"
));
deleteRepository
.
delete
(
recipe
Jpa
);
deleteRepository
.
delete
(
recipe
Document
);
}
}
}
}
src/main/java/com/example/apprecetas/recipe/application/impl/ReadRecipeUseCaseImpl.java
View file @
d8319638
...
@@ -5,7 +5,7 @@ import com.example.apprecetas.recipe.application.ReadRecipeUseCase;
...
@@ -5,7 +5,7 @@ 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.mapper.RecipeMapper
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -21,16 +21,16 @@ public class ReadRecipeUseCaseImpl implements ReadRecipeUseCase {
...
@@ -21,16 +21,16 @@ public class ReadRecipeUseCaseImpl implements ReadRecipeUseCase {
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
@Override
@Override
public
Recipe
readById
(
Lo
ng
id
)
{
public
Recipe
readById
(
Stri
ng
id
)
{
Recipe
Jpa
recipeJpa
=
repository
.
readById
(
id
)
Recipe
Document
recipeDocument
=
repository
.
readById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"La receta con id "
+
id
+
" no existe"
));
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"La receta con id "
+
id
+
" no existe"
));
return
mapper
.
map
Jpa
(
recipeJpa
);
return
mapper
.
map
Document
(
recipeDocument
);
}
}
@Override
@Override
public
List
<
Recipe
>
readAll
()
{
public
List
<
Recipe
>
readAll
()
{
return
repository
.
readAll
().
stream
()
return
repository
.
readAll
().
stream
()
.
map
(
mapper:
:
map
Jpa
)
.
map
(
mapper:
:
map
Document
)
.
toList
();
.
toList
();
}
}
}
}
src/main/java/com/example/apprecetas/recipe/application/impl/UpdateRecipeUseCaseImpl.java
View file @
d8319638
...
@@ -4,7 +4,7 @@ import com.example.apprecetas.recipe.application.UpdateRecipeUseCase;
...
@@ -4,7 +4,7 @@ import com.example.apprecetas.recipe.application.UpdateRecipeUseCase;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
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.RecipeMapper
;
import
com.example.apprecetas.recipe.infrastructure.mapper.RecipeMapper
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -18,9 +18,9 @@ public class UpdateRecipeUseCaseImpl implements UpdateRecipeUseCase {
...
@@ -18,9 +18,9 @@ public class UpdateRecipeUseCaseImpl implements UpdateRecipeUseCase {
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
@Override
@Override
public
Recipe
update
(
Lo
ng
id
,
Recipe
recipe
)
{
public
Recipe
update
(
Stri
ng
id
,
Recipe
recipe
)
{
Recipe
Jpa
recipeJpa
=
mapper
.
mapJpa
(
recipe
);
Recipe
Document
recipeDocument
=
mapper
.
mapDocument
(
recipe
);
Recipe
Jpa
updatedRecipe
=
repository
.
upadte
(
id
,
recipeJpa
);
Recipe
Document
updatedRecipe
=
repository
.
upadte
(
id
,
recipeDocument
);
return
mapper
.
map
Jpa
(
updatedRecipe
);
return
mapper
.
map
Document
(
updatedRecipe
);
}
}
}
}
src/main/java/com/example/apprecetas/recipe/domain/entity/Recipe.java
View file @
d8319638
...
@@ -11,7 +11,7 @@ import java.util.Set;
...
@@ -11,7 +11,7 @@ import java.util.Set;
@NoArgsConstructor
@NoArgsConstructor
public
class
Recipe
{
public
class
Recipe
{
private
Lo
ng
id
;
private
Stri
ng
id
;
private
String
name
;
private
String
name
;
private
String
description
;
private
String
description
;
private
String
picture
;
private
String
picture
;
...
...
src/main/java/com/example/apprecetas/recipe/domain/repository/CreateRecipeRepository.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
public
interface
CreateRecipeRepository
{
public
interface
CreateRecipeRepository
{
Recipe
Jpa
create
(
RecipeJpa
recipeJpa
);
Recipe
Document
create
(
RecipeDocument
recipeDocument
);
}
}
src/main/java/com/example/apprecetas/recipe/domain/repository/DeleteRecipeRepository.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
public
interface
DeleteRecipeRepository
{
public
interface
DeleteRecipeRepository
{
void
delete
(
Recipe
Jpa
recipeJpa
);
void
delete
(
Recipe
Document
recipeDocument
);
}
}
src/main/java/com/example/apprecetas/recipe/domain/repository/ReadRecipeRepository.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.Optional
;
public
interface
ReadRecipeRepository
{
public
interface
ReadRecipeRepository
{
Optional
<
Recipe
Jpa
>
readById
(
Lo
ng
id
);
Optional
<
Recipe
Document
>
readById
(
Stri
ng
id
);
List
<
Recipe
Jpa
>
readAll
();
List
<
Recipe
Document
>
readAll
();
}
}
src/main/java/com/example/apprecetas/recipe/domain/repository/UpdateRecipeRepository.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
package
com
.
example
.
apprecetas
.
recipe
.
domain
.
repository
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
public
interface
UpdateRecipeRepository
{
public
interface
UpdateRecipeRepository
{
Recipe
Jpa
upadte
(
Long
id
,
RecipeJpa
recipeJpa
);
Recipe
Document
upadte
(
String
id
,
RecipeDocument
recipeDocument
);
}
}
src/main/java/com/example/apprecetas/recipe/infrastructure/controller/DeleteRecipeController.java
View file @
d8319638
...
@@ -16,7 +16,7 @@ public class DeleteRecipeController {
...
@@ -16,7 +16,7 @@ public class DeleteRecipeController {
private
final
DeleteRecipeUseCase
service
;
private
final
DeleteRecipeUseCase
service
;
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
public
ResponseEntity
<
String
>
delete
(
@PathVariable
Lo
ng
id
)
{
public
ResponseEntity
<
String
>
delete
(
@PathVariable
Stri
ng
id
)
{
service
.
delete
(
id
);
service
.
delete
(
id
);
return
ResponseEntity
.
ok
().
body
(
"La receta con id "
+
id
+
" se ha eliminado correctamente."
);
return
ResponseEntity
.
ok
().
body
(
"La receta con id "
+
id
+
" se ha eliminado correctamente."
);
}
}
...
...
src/main/java/com/example/apprecetas/recipe/infrastructure/controller/ReadRecipeController.java
View file @
d8319638
...
@@ -23,7 +23,7 @@ public class ReadRecipeController {
...
@@ -23,7 +23,7 @@ public class ReadRecipeController {
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
@GetMapping
(
"/{id}"
)
@GetMapping
(
"/{id}"
)
public
ResponseEntity
<
RecipeOutputDto
>
readById
(
@PathVariable
Lo
ng
id
)
{
public
ResponseEntity
<
RecipeOutputDto
>
readById
(
@PathVariable
Stri
ng
id
)
{
return
ResponseEntity
.
ok
().
body
(
mapper
.
map
(
service
.
readById
(
id
)));
return
ResponseEntity
.
ok
().
body
(
mapper
.
map
(
service
.
readById
(
id
)));
}
}
...
...
src/main/java/com/example/apprecetas/recipe/infrastructure/controller/UpdateRecipeController.java
View file @
d8319638
...
@@ -24,7 +24,7 @@ public class UpdateRecipeController {
...
@@ -24,7 +24,7 @@ public class UpdateRecipeController {
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
private
final
RecipeMapper
mapper
=
Mappers
.
getMapper
(
RecipeMapper
.
class
);
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
ResponseEntity
<
RecipeOutputDto
>
update
(
@PathVariable
Lo
ng
id
,
@RequestBody
@Valid
RecipeInputDto
recipeInputDto
,
BindingResult
result
)
{
public
ResponseEntity
<
RecipeOutputDto
>
update
(
@PathVariable
Stri
ng
id
,
@RequestBody
@Valid
RecipeInputDto
recipeInputDto
,
BindingResult
result
)
{
if
(
result
.
hasErrors
())
{
if
(
result
.
hasErrors
())
{
String
errorMsg
=
result
.
getFieldErrors
().
stream
()
String
errorMsg
=
result
.
getFieldErrors
().
stream
()
.
map
(
fieldError
->
fieldError
.
getField
()
+
": "
+
fieldError
.
getDefaultMessage
())
.
map
(
fieldError
->
fieldError
.
getField
()
+
": "
+
fieldError
.
getDefaultMessage
())
...
...
src/main/java/com/example/apprecetas/recipe/infrastructure/controller/dto/input/RecipeInputDto.java
View file @
d8319638
...
@@ -28,7 +28,7 @@ public class RecipeInputDto {
...
@@ -28,7 +28,7 @@ public class RecipeInputDto {
@Valid
@Valid
private
Set
<
IngredientInputDto
>
ingredients
;
private
Set
<
IngredientInputDto
>
ingredients
;
@NotEmpty
(
message
=
"Debe incluir al menos un
ingrediente
"
)
@NotEmpty
(
message
=
"Debe incluir al menos un
paso
"
)
@Valid
@Valid
private
Set
<
StepInputDto
>
steps
;
private
Set
<
StepInputDto
>
steps
;
...
...
src/main/java/com/example/apprecetas/recipe/infrastructure/controller/dto/output/RecipeOutputDto.java
View file @
d8319638
...
@@ -13,7 +13,7 @@ import java.util.Set;
...
@@ -13,7 +13,7 @@ import java.util.Set;
@NoArgsConstructor
@NoArgsConstructor
public
class
RecipeOutputDto
{
public
class
RecipeOutputDto
{
private
Lo
ng
id
;
private
Stri
ng
id
;
private
String
name
;
private
String
name
;
private
String
description
;
private
String
description
;
private
String
picture
;
private
String
picture
;
...
...
src/main/java/com/example/apprecetas/recipe/infrastructure/mapper/RecipeMapper.java
View file @
d8319638
...
@@ -3,7 +3,7 @@ package com.example.apprecetas.recipe.infrastructure.mapper;
...
@@ -3,7 +3,7 @@ package com.example.apprecetas.recipe.infrastructure.mapper;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
import
com.example.apprecetas.recipe.domain.entity.Recipe
;
import
com.example.apprecetas.recipe.infrastructure.controller.dto.input.RecipeInputDto
;
import
com.example.apprecetas.recipe.infrastructure.controller.dto.input.RecipeInputDto
;
import
com.example.apprecetas.recipe.infrastructure.controller.dto.output.RecipeOutputDto
;
import
com.example.apprecetas.recipe.infrastructure.controller.dto.output.RecipeOutputDto
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapper
;
@Mapper
@Mapper
...
@@ -13,8 +13,8 @@ public interface RecipeMapper {
...
@@ -13,8 +13,8 @@ public interface RecipeMapper {
Recipe
map
(
RecipeInputDto
recipeInputDto
);
Recipe
map
(
RecipeInputDto
recipeInputDto
);
Recipe
Jpa
mapJpa
(
Recipe
recipe
);
Recipe
Document
mapDocument
(
Recipe
recipe
);
Recipe
map
Jpa
(
RecipeJpa
recipeJpa
);
Recipe
map
Document
(
RecipeDocument
recipeDocument
);
}
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/CreateRecipeRepositoryImpl.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.recipe.domain.repository.CreateRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.CreateRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeRepositoryJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeRepository
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
...
@@ -10,10 +10,10 @@ import org.springframework.stereotype.Repository;
...
@@ -10,10 +10,10 @@ import org.springframework.stereotype.Repository;
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
CreateRecipeRepositoryImpl
implements
CreateRecipeRepository
{
public
class
CreateRecipeRepositoryImpl
implements
CreateRecipeRepository
{
private
final
RecipeRepository
Jpa
repositoryJpa
;
private
final
RecipeRepository
repositoryJpa
;
@Override
@Override
public
Recipe
Jpa
create
(
RecipeJpa
recipeJpa
)
{
public
Recipe
Document
create
(
RecipeDocument
recipeDocument
)
{
return
repositoryJpa
.
save
(
recipe
Jpa
);
return
repositoryJpa
.
save
(
recipe
Document
);
}
}
}
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/DeleteRecipeRepositoryImpl.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.recipe.domain.repository.DeleteRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.DeleteRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeRepositoryJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeRepository
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
...
@@ -10,10 +10,10 @@ import org.springframework.stereotype.Repository;
...
@@ -10,10 +10,10 @@ import org.springframework.stereotype.Repository;
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
DeleteRecipeRepositoryImpl
implements
DeleteRecipeRepository
{
public
class
DeleteRecipeRepositoryImpl
implements
DeleteRecipeRepository
{
private
final
RecipeRepository
Jpa
repositoryJpa
;
private
final
RecipeRepository
repositoryJpa
;
@Override
@Override
public
void
delete
(
Recipe
Jpa
recipeJpa
)
{
public
void
delete
(
Recipe
Document
recipeDocument
)
{
repositoryJpa
.
delete
(
recipe
Jpa
);
repositoryJpa
.
delete
(
recipe
Document
);
}
}
}
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/ReadRecipeRepositoryImpl.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.recipe.domain.repository.ReadRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.ReadRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeRepositoryJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeRepository
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
...
@@ -13,15 +13,15 @@ import java.util.Optional;
...
@@ -13,15 +13,15 @@ import java.util.Optional;
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
ReadRecipeRepositoryImpl
implements
ReadRecipeRepository
{
public
class
ReadRecipeRepositoryImpl
implements
ReadRecipeRepository
{
private
final
RecipeRepository
Jpa
repositoryJpa
;
private
final
RecipeRepository
repositoryJpa
;
@Override
@Override
public
Optional
<
Recipe
Jpa
>
readById
(
Lo
ng
id
)
{
public
Optional
<
Recipe
Document
>
readById
(
Stri
ng
id
)
{
return
repositoryJpa
.
findById
(
id
);
return
repositoryJpa
.
findById
(
id
);
}
}
@Override
@Override
public
List
<
Recipe
Jpa
>
readAll
()
{
public
List
<
Recipe
Document
>
readAll
()
{
return
repositoryJpa
.
findAll
();
return
repositoryJpa
.
findAll
();
}
}
}
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/impl/UpdateRecipeRepositoryImpl.java
View file @
d8319638
...
@@ -2,8 +2,8 @@ package com.example.apprecetas.recipe.infrastructure.repository.impl;
...
@@ -2,8 +2,8 @@ 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.repository.UpdateRecipeRepository
;
import
com.example.apprecetas.recipe.domain.repository.UpdateRecipeRepository
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeDocument
;
import
com.example.apprecetas.recipe.infrastructure.repository.
jpa.RecipeRepositoryJpa
;
import
com.example.apprecetas.recipe.infrastructure.repository.
mongodb.RecipeRepository
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
...
@@ -11,17 +11,17 @@ import org.springframework.stereotype.Repository;
...
@@ -11,17 +11,17 @@ import org.springframework.stereotype.Repository;
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
UpdateRecipeRepositoryImpl
implements
UpdateRecipeRepository
{
public
class
UpdateRecipeRepositoryImpl
implements
UpdateRecipeRepository
{
private
final
RecipeRepository
Jpa
repositoryJpa
;
private
final
RecipeRepository
repositoryJpa
;
@Override
@Override
public
Recipe
Jpa
upadte
(
Long
id
,
RecipeJpa
recipeJpa
)
{
public
Recipe
Document
upadte
(
String
id
,
RecipeDocument
recipeDocument
)
{
Recipe
Jpa
recipe
=
repositoryJpa
.
findById
(
id
)
Recipe
Document
recipe
=
repositoryJpa
.
findById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"La receta con id "
+
id
+
" no existe"
));
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"La receta con id "
+
id
+
" no existe"
));
recipe
.
setName
(
recipe
Jpa
.
getName
());
recipe
.
setName
(
recipe
Document
.
getName
());
recipe
.
setDescription
(
recipe
Jpa
.
getDescription
());
recipe
.
setDescription
(
recipe
Document
.
getDescription
());
recipe
.
setPicture
(
recipe
Jpa
.
getPicture
());
recipe
.
setPicture
(
recipe
Document
.
getPicture
());
return
repositoryJpa
.
save
(
recipe
);
return
repositoryJpa
.
save
(
recipe
);
}
}
...
...
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/jpa/RecipeRepositoryJpa.java
deleted
100644 → 0
View file @
f3a3de77
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
jpa
;
import
org.springframework.data.jpa.repository.JpaRepository
;
public
interface
RecipeRepositoryJpa
extends
JpaRepository
<
RecipeJpa
,
Long
>
{
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/
jpa/IngredientJpa
.java
→
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/
mongodb/IngredientDocument
.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
jpa
;
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
mongodb
;
import
jakarta.persistence.*
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.Setter
;
@Entity
@Table
(
name
=
"ingredient"
)
@Getter
@Getter
@Setter
@Setter
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
public
class
IngredientJpa
{
public
class
IngredientDocument
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@Column
(
name
=
"id_ingredient"
)
private
Long
id
;
private
String
name
;
private
String
name
;
private
int
quantity
;
private
int
quantity
;
private
String
unitOfMeasure
;
private
String
unitOfMeasure
;
@ManyToOne
@JoinColumn
(
name
=
"recipe_id"
)
private
RecipeJpa
recipe
;
}
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/
jpa/RecipeJpa
.java
→
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/
mongodb/RecipeDocument
.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
jpa
;
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
mongodb
;
import
jakarta.persistence.*
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.Setter
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.util.HashSet
;
import
java.util.Set
;
import
java.util.Set
;
@Entity
@Document
(
collection
=
"recipes"
)
@Table
(
name
=
"recipe"
)
@AllArgsConstructor
@AllArgsConstructor
@NoArgsConstructor
@NoArgsConstructor
@Getter
@Getter
@Setter
@Setter
public
class
Recipe
Jpa
{
public
class
Recipe
Document
{
@Id
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
String
id
;
@Column
(
name
=
"id_recipe"
)
private
Long
id
;
private
String
name
;
private
String
name
;
private
String
description
;
private
String
description
;
private
String
picture
;
private
String
picture
;
@OneToMany
(
mappedBy
=
"recipe"
,
cascade
=
CascadeType
.
ALL
,
orphanRemoval
=
true
)
private
Set
<
IngredientDocument
>
ingredients
=
new
HashSet
<>();
private
Set
<
IngredientJpa
>
ingredients
;
private
Set
<
StepDocument
>
steps
=
new
HashSet
<>();
@OneToMany
(
mappedBy
=
"recipe"
,
cascade
=
CascadeType
.
ALL
,
orphanRemoval
=
true
)
private
Set
<
StepJpa
>
steps
;
}
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/mongodb/RecipeRepository.java
0 → 100644
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
mongodb
;
import
org.springframework.data.mongodb.repository.MongoRepository
;
public
interface
RecipeRepository
extends
MongoRepository
<
RecipeDocument
,
String
>
{
}
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/
jpa/StepJpa
.java
→
src/main/java/com/example/apprecetas/recipe/infrastructure/repository/
mongodb/StepDocument
.java
View file @
d8319638
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
jpa
;
package
com
.
example
.
apprecetas
.
recipe
.
infrastructure
.
repository
.
mongodb
;
import
jakarta.persistence.*
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.Setter
;
@Entity
@Table
(
name
=
"step"
)
@AllArgsConstructor
@AllArgsConstructor
@NoArgsConstructor
@NoArgsConstructor
@Getter
@Getter
@Setter
@Setter
public
class
StepJpa
{
public
class
StepDocument
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@Column
(
name
=
"id_step"
)
private
Long
id
;
private
int
number
;
private
int
number
;
private
String
description
;
private
String
description
;
@ManyToOne
@JoinColumn
(
name
=
"recipe_id"
)
private
RecipeJpa
recipe
;
}
}
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