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
3e985f7d
authored
Sep 10, 2025
by
Alba María Álvarez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
bugfix(user): eliminado uso de UserDocument en las interfaces CRUD de usuario
parent
a204d002
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
75 additions
and
71 deletions
src/main/java/com/example/apprecetas/security/service/CustomUserDetailsServiceImpl.java
src/main/java/com/example/apprecetas/user/application/impl/CreateUserUseCaseImpl.java
src/main/java/com/example/apprecetas/user/application/impl/DeleteUserUseCaseImpl.java
src/main/java/com/example/apprecetas/user/application/impl/ReadUserUseCaseImpl.java
src/main/java/com/example/apprecetas/user/application/impl/UpdateUserUseCaseImpl.java
src/main/java/com/example/apprecetas/user/domain/repository/CreateUserRepository.java
src/main/java/com/example/apprecetas/user/domain/repository/ReadUserRepository.java
src/main/java/com/example/apprecetas/user/domain/repository/UpdateUserRepository.java
src/main/java/com/example/apprecetas/user/infrastructure/repository/impl/CreateUserRepositoryImpl.java
src/main/java/com/example/apprecetas/user/infrastructure/repository/impl/DeleteUserRepositoryImpl.java
src/main/java/com/example/apprecetas/user/infrastructure/repository/impl/ReadUserRepositoryImpl.java
src/main/java/com/example/apprecetas/user/infrastructure/repository/impl/UpdateUserRepositoryImpl.java
src/main/java/com/example/apprecetas/security/service/CustomUserDetailsServiceImpl.java
View file @
3e985f7d
...
...
@@ -16,11 +16,15 @@ public class CustomUserDetailsServiceImpl implements UserDetailsService {
@Override
public
UserDetails
loadUserByUsername
(
String
id
)
throws
UsernameNotFoundException
{
return
userRepository
.
readById
(
id
)
.
map
(
user
->
User
.
withUsername
(
user
.
getId
())
.
password
(
user
.
getPassword
())
.
roles
(
user
.
getRole
().
name
())
.
build
())
.
orElseThrow
(()
->
new
UsernameNotFoundException
(
"Usuario con id "
+
id
+
" no encontrado"
));
com
.
example
.
apprecetas
.
user
.
domain
.
entity
.
User
user
=
userRepository
.
readById
(
id
);
if
(
user
==
null
)
{
throw
new
UsernameNotFoundException
(
"Usuario con id "
+
id
+
" no encontrado"
);
}
return
User
.
withUsername
(
user
.
getId
())
.
password
(
user
.
getPassword
())
.
roles
(
user
.
getRole
().
name
())
.
build
();
}
}
src/main/java/com/example/apprecetas/user/application/impl/CreateUserUseCaseImpl.java
View file @
3e985f7d
package
com
.
example
.
apprecetas
.
user
.
application
.
impl
;
import
com.example.apprecetas.user.application.CreateUserUseCase
;
import
com.example.apprecetas.user.domain.entity.Role
;
import
com.example.apprecetas.user.domain.entity.User
;
import
com.example.apprecetas.user.domain.repository.CreateUserRepository
;
import
com.example.apprecetas.user.infrastructure.mapper.UserMapper
;
import
com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.security.crypto.password.PasswordEncoder
;
...
...
@@ -22,11 +20,6 @@ public class CreateUserUseCaseImpl implements CreateUserUseCase {
@Override
public
User
create
(
User
user
)
{
UserDocument
userDocument
=
mapper
.
mapDocument
(
user
);
userDocument
.
setPassword
(
passwordEncoder
.
encode
(
userDocument
.
getPassword
()));
userDocument
.
setRole
(
Role
.
USER
);
UserDocument
createdUser
=
repository
.
create
(
userDocument
);
return
mapper
.
mapDocument
(
createdUser
);
return
repository
.
create
(
user
);
}
}
src/main/java/com/example/apprecetas/user/application/impl/DeleteUserUseCaseImpl.java
View file @
3e985f7d
package
com
.
example
.
apprecetas
.
user
.
application
.
impl
;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.user.application.DeleteUserUseCase
;
import
com.example.apprecetas.user.domain.repository.DeleteUserRepository
;
import
com.example.apprecetas.user.domain.repository.ReadUserRepository
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
...
...
@@ -13,12 +11,8 @@ public class DeleteUserUseCaseImpl implements DeleteUserUseCase {
private
final
DeleteUserRepository
deleteUserRepository
;
private
final
ReadUserRepository
readUserRepository
;
@Override
public
void
deleteById
(
String
id
)
{
readUserRepository
.
readById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Usuario con id "
+
id
+
" no encontrado"
));
deleteUserRepository
.
deleteById
(
id
);
}
}
src/main/java/com/example/apprecetas/user/application/impl/ReadUserUseCaseImpl.java
View file @
3e985f7d
package
com
.
example
.
apprecetas
.
user
.
application
.
impl
;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.user.application.ReadUserUseCase
;
import
com.example.apprecetas.user.domain.entity.User
;
import
com.example.apprecetas.user.domain.repository.ReadUserRepository
;
import
com.example.apprecetas.user.infrastructure.mapper.UserMapper
;
import
com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
...
...
@@ -18,30 +14,23 @@ public class ReadUserUseCaseImpl implements ReadUserUseCase {
private
final
ReadUserRepository
repository
;
private
final
UserMapper
mapper
=
Mappers
.
getMapper
(
UserMapper
.
class
);
@Override
public
User
readById
(
String
id
)
{
UserDocument
userDocument
=
repository
.
readById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Usuario con id "
+
id
+
" no encontrado"
));
return
mapper
.
mapDocument
(
userDocument
);
return
repository
.
readById
(
id
);
}
@Override
public
User
readByEmail
(
String
email
)
{
return
repository
.
readByEmail
(
email
).
map
(
mapper:
:
mapDocument
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Usuario con email "
+
email
+
" no encontrado"
));
return
repository
.
readByEmail
(
email
);
}
@Override
public
Page
<
User
>
readByNameOrEmail
(
String
query
,
Pageable
pageable
)
{
return
repository
.
readByNameOrEmail
(
query
,
query
,
pageable
)
.
map
(
mapper:
:
mapDocument
);
return
repository
.
readByNameOrEmail
(
query
,
query
,
pageable
);
}
@Override
public
Page
<
User
>
readAll
(
Pageable
pageable
)
{
return
repository
.
readAll
(
pageable
)
.
map
(
mapper:
:
mapDocument
);
return
repository
.
readAll
(
pageable
);
}
}
src/main/java/com/example/apprecetas/user/application/impl/UpdateUserUseCaseImpl.java
View file @
3e985f7d
...
...
@@ -4,10 +4,7 @@ import com.example.apprecetas.user.application.UpdateUserUseCase;
import
com.example.apprecetas.user.domain.entity.Role
;
import
com.example.apprecetas.user.domain.entity.User
;
import
com.example.apprecetas.user.domain.repository.UpdateUserRepository
;
import
com.example.apprecetas.user.infrastructure.mapper.UserMapper
;
import
com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.stereotype.Service
;
@Service
...
...
@@ -16,13 +13,9 @@ public class UpdateUserUseCaseImpl implements UpdateUserUseCase {
private
final
UpdateUserRepository
updateUserRepository
;
private
final
UserMapper
mapper
=
Mappers
.
getMapper
(
UserMapper
.
class
);
@Override
public
User
updateById
(
String
id
,
User
inputUser
)
{
UserDocument
userDocument
=
mapper
.
mapDocument
(
inputUser
);
UserDocument
modifiedUser
=
updateUserRepository
.
updateById
(
id
,
userDocument
);
return
mapper
.
mapDocument
(
modifiedUser
);
return
updateUserRepository
.
updateById
(
id
,
inputUser
);
}
@Override
...
...
src/main/java/com/example/apprecetas/user/domain/repository/CreateUserRepository.java
View file @
3e985f7d
package
com
.
example
.
apprecetas
.
user
.
domain
.
repository
;
import
com.example.apprecetas.user.
infrastructure.repository.mongodb.UserDocument
;
import
com.example.apprecetas.user.
domain.entity.User
;
public
interface
CreateUserRepository
{
User
Document
create
(
UserDocument
userDocument
);
User
create
(
User
user
);
}
src/main/java/com/example/apprecetas/user/domain/repository/ReadUserRepository.java
View file @
3e985f7d
package
com
.
example
.
apprecetas
.
user
.
domain
.
repository
;
import
com.example.apprecetas.user.
infrastructure.repository.mongodb.UserDocument
;
import
com.example.apprecetas.user.
domain.entity.User
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
java.util.Optional
;
public
interface
ReadUserRepository
{
Optional
<
UserDocument
>
readById
(
String
id
);
User
readById
(
String
id
);
Optional
<
UserDocument
>
readByEmail
(
String
email
);
User
readByEmail
(
String
email
);
Page
<
User
Document
>
readByNameOrEmail
(
String
name
,
String
email
,
Pageable
pageable
);
Page
<
User
>
readByNameOrEmail
(
String
name
,
String
email
,
Pageable
pageable
);
Page
<
User
Document
>
readAll
(
Pageable
pageable
);
Page
<
User
>
readAll
(
Pageable
pageable
);
}
src/main/java/com/example/apprecetas/user/domain/repository/UpdateUserRepository.java
View file @
3e985f7d
package
com
.
example
.
apprecetas
.
user
.
domain
.
repository
;
import
com.example.apprecetas.user.domain.entity.Role
;
import
com.example.apprecetas.user.
infrastructure.repository.mongodb.UserDocument
;
import
com.example.apprecetas.user.
domain.entity.User
;
public
interface
UpdateUserRepository
{
User
Document
updateById
(
String
id
,
UserDocument
userDocument
);
User
updateById
(
String
id
,
User
user
);
boolean
changePassword
(
String
id
,
String
oldPassword
,
String
newPassword
);
...
...
src/main/java/com/example/apprecetas/user/infrastructure/repository/impl/CreateUserRepositoryImpl.java
View file @
3e985f7d
package
com
.
example
.
apprecetas
.
user
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.user.domain.entity.Role
;
import
com.example.apprecetas.user.domain.entity.User
;
import
com.example.apprecetas.user.domain.repository.CreateUserRepository
;
import
com.example.apprecetas.user.infrastructure.mapper.UserMapper
;
import
com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument
;
import
com.example.apprecetas.user.infrastructure.repository.mongodb.UserRepository
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.security.crypto.password.PasswordEncoder
;
import
org.springframework.stereotype.Repository
;
@Repository
...
...
@@ -12,8 +17,17 @@ public class CreateUserRepositoryImpl implements CreateUserRepository {
private
final
UserRepository
userRepository
;
private
final
PasswordEncoder
passwordEncoder
;
private
final
UserMapper
mapper
=
Mappers
.
getMapper
(
UserMapper
.
class
);
@Override
public
UserDocument
create
(
UserDocument
userDocument
)
{
return
userRepository
.
save
(
userDocument
);
public
User
create
(
User
user
)
{
UserDocument
userDocument
=
mapper
.
mapDocument
(
user
);
userDocument
.
setPassword
(
passwordEncoder
.
encode
(
userDocument
.
getPassword
()));
userDocument
.
setRole
(
Role
.
USER
);
UserDocument
savedUser
=
userRepository
.
save
(
userDocument
);
return
mapper
.
mapDocument
(
savedUser
);
}
}
src/main/java/com/example/apprecetas/user/infrastructure/repository/impl/DeleteUserRepositoryImpl.java
View file @
3e985f7d
package
com
.
example
.
apprecetas
.
user
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.user.domain.repository.DeleteUserRepository
;
import
com.example.apprecetas.user.infrastructure.repository.mongodb.UserRepository
;
import
lombok.RequiredArgsConstructor
;
...
...
@@ -13,6 +14,8 @@ public class DeleteUserRepositoryImpl implements DeleteUserRepository {
@Override
public
void
deleteById
(
String
id
)
{
userRepository
.
findById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Usuario con id "
+
id
+
" no encontrado"
));
userRepository
.
deleteById
(
id
);
}
}
src/main/java/com/example/apprecetas/user/infrastructure/repository/impl/ReadUserRepositoryImpl.java
View file @
3e985f7d
package
com
.
example
.
apprecetas
.
user
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.user.domain.entity.User
;
import
com.example.apprecetas.user.domain.repository.ReadUserRepository
;
import
com.example.apprecetas.user.infrastructure.mapper.UserMapper
;
import
com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument
;
import
com.example.apprecetas.user.infrastructure.repository.mongodb.UserRepository
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Repository
;
import
java.util.Optional
;
@Repository
@RequiredArgsConstructor
public
class
ReadUserRepositoryImpl
implements
ReadUserRepository
{
private
final
UserRepository
userRepository
;
private
final
UserMapper
mapper
=
Mappers
.
getMapper
(
UserMapper
.
class
);
@Override
public
Optional
<
UserDocument
>
readById
(
String
id
)
{
return
userRepository
.
findById
(
id
);
public
User
readById
(
String
id
)
{
UserDocument
userDocument
=
userRepository
.
findById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Usuario con id "
+
id
+
" no encontrado"
));
return
mapper
.
mapDocument
(
userDocument
);
}
@Override
public
Optional
<
UserDocument
>
readByEmail
(
String
email
)
{
return
userRepository
.
findByEmail
(
email
);
public
User
readByEmail
(
String
email
)
{
UserDocument
userDocument
=
userRepository
.
findByEmail
(
email
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Usuario con email "
+
email
+
" no encontrado"
));
return
mapper
.
mapDocument
(
userDocument
);
}
@Override
public
Page
<
UserDocument
>
readByNameOrEmail
(
String
name
,
String
email
,
Pageable
pageable
)
{
return
userRepository
.
findByNameIgnoreCaseContainingOrEmailIgnoreCaseContaining
(
name
,
email
,
pageable
);
public
Page
<
User
>
readByNameOrEmail
(
String
name
,
String
email
,
Pageable
pageable
)
{
return
userRepository
.
findByNameIgnoreCaseContainingOrEmailIgnoreCaseContaining
(
name
,
email
,
pageable
)
.
map
(
mapper:
:
mapDocument
);
}
@Override
public
Page
<
UserDocument
>
readAll
(
Pageable
pageable
)
{
return
userRepository
.
findAll
(
pageable
);
public
Page
<
User
>
readAll
(
Pageable
pageable
)
{
return
userRepository
.
findAll
(
pageable
)
.
map
(
mapper:
:
mapDocument
);
}
}
src/main/java/com/example/apprecetas/user/infrastructure/repository/impl/UpdateUserRepositoryImpl.java
View file @
3e985f7d
...
...
@@ -2,10 +2,13 @@ package com.example.apprecetas.user.infrastructure.repository.impl;
import
com.example.apprecetas.exception.EntityNotFoundException
;
import
com.example.apprecetas.user.domain.entity.Role
;
import
com.example.apprecetas.user.domain.entity.User
;
import
com.example.apprecetas.user.domain.repository.UpdateUserRepository
;
import
com.example.apprecetas.user.infrastructure.mapper.UserMapper
;
import
com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument
;
import
com.example.apprecetas.user.infrastructure.repository.mongodb.UserRepository
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.security.crypto.password.PasswordEncoder
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -19,15 +22,18 @@ public class UpdateUserRepositoryImpl implements UpdateUserRepository {
private
final
PasswordEncoder
passwordEncoder
;
private
final
UserMapper
mapper
=
Mappers
.
getMapper
(
UserMapper
.
class
);
@Override
public
User
Document
updateById
(
String
id
,
UserDocument
userDocument
)
{
UserDocument
user
=
userRepository
.
findById
(
id
)
public
User
updateById
(
String
id
,
User
user
)
{
UserDocument
user
Document
=
userRepository
.
findById
(
id
)
.
orElseThrow
(()
->
new
EntityNotFoundException
(
"Usuario con id "
+
id
+
" no encontrado"
));
user
.
setName
(
userDocument
.
getName
());
user
.
setSurname
(
userDocument
.
getSurname
());
user
Document
.
setName
(
user
.
getName
());
user
Document
.
setSurname
(
user
.
getSurname
());
return
userRepository
.
save
(
user
);
UserDocument
updatedUser
=
userRepository
.
save
(
userDocument
);
return
mapper
.
mapDocument
(
updatedUser
);
}
@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