add endpoint save user
This commit is contained in:
parent
d9f93f42c3
commit
280400ceea
9 changed files with 59 additions and 13 deletions
|
|
@ -0,0 +1,13 @@
|
|||
package main.java.models.requests;
|
||||
|
||||
import java.util.Set;
|
||||
import main.java.models.enums.ProfileEnum;
|
||||
import lombok.With;
|
||||
|
||||
@With
|
||||
public record CreateUserRequest(
|
||||
String name,
|
||||
String email,
|
||||
String password,
|
||||
Set<ProfileEnum> profiles) {
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -3,3 +3,4 @@ main/java/models/exceptions/StandardError$StandardErrorBuilder.class
|
|||
main/java/models/responses/UserResponse.class
|
||||
main/java/models/enums/ProfileEnum.class
|
||||
main/java/models/exceptions/StandardError.class
|
||||
main/java/models/requests/CreateUserRequest.class
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
/home/dev/projetos/Help Desk 2.0/hd-commons-lib/src/main/java/models/enums/ProfileEnum.java
|
||||
/home/dev/projetos/Help Desk 2.0/hd-commons-lib/src/main/java/models/exceptions/ResourceNotFoundException.java
|
||||
/home/dev/projetos/Help Desk 2.0/hd-commons-lib/src/main/java/models/exceptions/StandardError.java
|
||||
/home/dev/projetos/Help Desk 2.0/hd-commons-lib/src/main/java/models/requests/CreateUserRequest.java
|
||||
/home/dev/projetos/Help Desk 2.0/hd-commons-lib/src/main/java/models/responses/UserResponse.java
|
||||
|
|
|
|||
|
|
@ -1,9 +1,12 @@
|
|||
package br.com.rayankonecny.userserviceapi.controller;
|
||||
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
|
|
@ -12,21 +15,31 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
||||
import main.java.models.exceptions.StandardError;
|
||||
import main.java.models.requests.CreateUserRequest;
|
||||
import main.java.models.responses.UserResponse;
|
||||
|
||||
@Tag(name = "User Controller", description = "Controller responsible for user operations")
|
||||
@RequestMapping("/api/users")
|
||||
public interface UserController {
|
||||
|
||||
@Operation(summary = "Find User by ID", description = "Retrieve user information by user ID")
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "User found successfully"),
|
||||
@ApiResponse(responseCode = "404", description = "User not found", content = @Content(mediaType = "application/json", schema = @Schema(implementation = StandardError.class))),
|
||||
@ApiResponse(responseCode = "500", description = "Internal server error", content = @Content(mediaType = "application/json", schema = @Schema(implementation = StandardError.class))),
|
||||
})
|
||||
@GetMapping("/{id}")
|
||||
ResponseEntity<UserResponse> findById(
|
||||
@Parameter(description = "User id", required = true, example = "6927c8c75efcfda14c3ea570")
|
||||
@PathVariable(name = "id") final String id);
|
||||
@Operation(summary = "Find User by ID", description = "Retrieve user information by user ID")
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "User found successfully"),
|
||||
@ApiResponse(responseCode = "404", description = "User not found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = StandardError.class))),
|
||||
@ApiResponse(responseCode = "500", description = "Internal server error", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = StandardError.class))),
|
||||
})
|
||||
@GetMapping("/{id}")
|
||||
ResponseEntity<UserResponse> findById(
|
||||
@Parameter(description = "User id", required = true, example = "6927c8c75efcfda14c3ea570") @PathVariable(name = "id") final String id);
|
||||
|
||||
@Operation(summary = "Save new user")
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "201", description = "User created successfully"),
|
||||
@ApiResponse(responseCode = "400", description = "Invalid request data", content = @Content(mediaType = "application/json", schema = @Schema(implementation = StandardError.class))),
|
||||
@ApiResponse(responseCode = "500", description = "Internal server error", content = @Content(mediaType = "application/json", schema = @Schema(implementation = StandardError.class)))
|
||||
})
|
||||
@PostMapping
|
||||
ResponseEntity<Void> save(@RequestBody final CreateUserRequest createUserRequest);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,13 +2,15 @@ package br.com.rayankonecny.userserviceapi.controller.impl;
|
|||
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import br.com.rayankonecny.userserviceapi.controller.UserController;
|
||||
|
||||
import br.com.rayankonecny.userserviceapi.service.UserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import main.java.models.requests.CreateUserRequest;
|
||||
import main.java.models.responses.UserResponse;
|
||||
|
||||
import static org.springframework.http.HttpStatus.CREATED;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class UserControllerImpl implements UserController {
|
||||
|
|
@ -16,8 +18,14 @@ public class UserControllerImpl implements UserController {
|
|||
private final UserService userService;
|
||||
|
||||
@Override
|
||||
public ResponseEntity<UserResponse> findById(String id) {
|
||||
public ResponseEntity<UserResponse> findById(final String id) {
|
||||
return ResponseEntity.ok().body(userService.findById(id));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<Void> save(final CreateUserRequest createUserRequest) {
|
||||
userService.save(createUserRequest);
|
||||
return ResponseEntity.status(CREATED.value()).build();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
package br.com.rayankonecny.userserviceapi.mapper;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
|
||||
import br.com.rayankonecny.userserviceapi.entity.User;
|
||||
import main.java.models.requests.CreateUserRequest;
|
||||
import main.java.models.responses.UserResponse;
|
||||
|
||||
import static org.mapstruct.NullValuePropertyMappingStrategy.IGNORE;
|
||||
|
|
@ -12,4 +14,7 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
|||
public interface UserMapper {
|
||||
|
||||
UserResponse fromEntity(final User entity);
|
||||
|
||||
@Mapping(target = "id", ignore = true)
|
||||
User fromRequest(CreateUserRequest createUserRequest);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import br.com.rayankonecny.userserviceapi.repository.UserRepository;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
import main.java.models.responses.UserResponse;
|
||||
import main.java.models.exceptions.ResourceNotFoundException;
|
||||
import main.java.models.requests.CreateUserRequest;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
|
|
@ -21,4 +22,8 @@ public class UserService {
|
|||
"Object not found! Id: " + id + ", Type: " + UserResponse.class.getSimpleName())));
|
||||
}
|
||||
|
||||
public void save(CreateUserRequest createUserRequest) {
|
||||
userRepository.save(userMapper.fromRequest(createUserRequest));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue