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
f816f94e
authored
Apr 26, 2025
by
Alba María Álvarez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
feat(CreateUser): implementada funcionalidad de creación de usuarios
parent
7fde8cf1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
102 additions
and
0 deletions
src/main/java/com/example/apprecetas/user/application/CreateUserUseCase.java
src/main/java/com/example/apprecetas/user/application/impl/CreateUserUseCaseImpl.java
src/main/java/com/example/apprecetas/user/domain/repository/CreateUserRepository.java
src/main/java/com/example/apprecetas/user/infrastructure/controller/CreateUserController.java
src/main/java/com/example/apprecetas/user/infrastructure/repository/impl/CreateUserRepositoryImpl.java
src/main/java/com/example/apprecetas/user/application/CreateUserUseCase.java
0 → 100644
View file @
f816f94e
package
com
.
example
.
apprecetas
.
user
.
application
;
import
com.example.apprecetas.user.infrastructure.controller.dto.UserInputDto
;
import
com.example.apprecetas.user.infrastructure.controller.dto.UserOutputDto
;
public
interface
CreateUserUseCase
{
UserOutputDto
create
(
UserInputDto
userInputDto
);
}
src/main/java/com/example/apprecetas/user/application/impl/CreateUserUseCaseImpl.java
0 → 100644
View file @
f816f94e
package
com
.
example
.
apprecetas
.
user
.
application
.
impl
;
import
com.example.apprecetas.user.application.CreateUserUseCase
;
import
com.example.apprecetas.user.domain.repository.CreateUserRepository
;
import
com.example.apprecetas.user.infrastructure.controller.dto.UserInputDto
;
import
com.example.apprecetas.user.infrastructure.controller.dto.UserOutputDto
;
import
com.example.apprecetas.user.infrastructure.mapper.UserMapper
;
import
com.example.apprecetas.user.infrastructure.repository.jpa.UserJpa
;
import
lombok.RequiredArgsConstructor
;
import
org.mapstruct.factory.Mappers
;
import
org.springframework.stereotype.Service
;
@Service
@RequiredArgsConstructor
public
class
CreateUserUseCaseImpl
implements
CreateUserUseCase
{
private
final
CreateUserRepository
repository
;
private
final
UserMapper
mapper
=
Mappers
.
getMapper
(
UserMapper
.
class
);
@Override
public
UserOutputDto
create
(
UserInputDto
userInputDto
)
{
UserJpa
userJpa
=
mapper
.
mapJpa
(
mapper
.
map
(
userInputDto
));
UserJpa
createdUser
=
repository
.
create
(
userJpa
);
return
mapper
.
map
(
mapper
.
mapJpa
(
createdUser
));
}
}
src/main/java/com/example/apprecetas/user/domain/repository/CreateUserRepository.java
0 → 100644
View file @
f816f94e
package
com
.
example
.
apprecetas
.
user
.
domain
.
repository
;
import
com.example.apprecetas.user.infrastructure.repository.jpa.UserJpa
;
public
interface
CreateUserRepository
{
UserJpa
create
(
UserJpa
userJpa
);
}
src/main/java/com/example/apprecetas/user/infrastructure/controller/CreateUserController.java
0 → 100644
View file @
f816f94e
package
com
.
example
.
apprecetas
.
user
.
infrastructure
.
controller
;
import
com.example.apprecetas.exceptions.UnvalidInputEntityException
;
import
com.example.apprecetas.user.application.CreateUserUseCase
;
import
com.example.apprecetas.user.infrastructure.controller.dto.UserInputDto
;
import
com.example.apprecetas.user.infrastructure.controller.dto.UserOutputDto
;
import
jakarta.validation.Valid
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.net.URI
;
import
java.util.stream.Collectors
;
@RestController
@RequestMapping
(
"/user"
)
@RequiredArgsConstructor
public
class
CreateUserController
{
private
final
CreateUserUseCase
service
;
@PostMapping
public
ResponseEntity
<
UserOutputDto
>
create
(
@Valid
@RequestBody
UserInputDto
userInputDto
,
BindingResult
result
)
{
if
(
result
.
hasErrors
())
{
String
errorMsg
=
result
.
getFieldErrors
().
stream
()
.
map
(
fieldError
->
fieldError
.
getField
()
+
": "
+
fieldError
.
getDefaultMessage
())
.
collect
(
Collectors
.
joining
(
"; "
));
throw
new
UnvalidInputEntityException
(
errorMsg
);
}
URI
location
=
URI
.
create
(
"/user"
);
return
ResponseEntity
.
created
(
location
).
body
(
service
.
create
(
userInputDto
));
}
}
src/main/java/com/example/apprecetas/user/infrastructure/repository/impl/CreateUserRepositoryImpl.java
0 → 100644
View file @
f816f94e
package
com
.
example
.
apprecetas
.
user
.
infrastructure
.
repository
.
impl
;
import
com.example.apprecetas.user.domain.repository.CreateUserRepository
;
import
com.example.apprecetas.user.infrastructure.repository.jpa.UserJpa
;
import
com.example.apprecetas.user.infrastructure.repository.jpa.UserRepositoryJpa
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Repository
;
@Repository
@RequiredArgsConstructor
public
class
CreateUserRepositoryImpl
implements
CreateUserRepository
{
private
final
UserRepositoryJpa
repositoryJpa
;
@Override
public
UserJpa
create
(
UserJpa
userJpa
)
{
return
repositoryJpa
.
save
(
userJpa
);
}
}
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