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/responses/UserResponse.class
|
||||||
main/java/models/enums/ProfileEnum.class
|
main/java/models/enums/ProfileEnum.class
|
||||||
main/java/models/exceptions/StandardError.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/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/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/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
|
/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;
|
package br.com.rayankonecny.userserviceapi.controller;
|
||||||
|
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
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.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
|
@ -12,7 +15,9 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
import main.java.models.exceptions.StandardError;
|
import main.java.models.exceptions.StandardError;
|
||||||
|
import main.java.models.requests.CreateUserRequest;
|
||||||
import main.java.models.responses.UserResponse;
|
import main.java.models.responses.UserResponse;
|
||||||
|
|
||||||
@Tag(name = "User Controller", description = "Controller responsible for user operations")
|
@Tag(name = "User Controller", description = "Controller responsible for user operations")
|
||||||
|
|
@ -22,11 +27,19 @@ public interface UserController {
|
||||||
@Operation(summary = "Find User by ID", description = "Retrieve user information by user ID")
|
@Operation(summary = "Find User by ID", description = "Retrieve user information by user ID")
|
||||||
@ApiResponses(value = {
|
@ApiResponses(value = {
|
||||||
@ApiResponse(responseCode = "200", description = "User found successfully"),
|
@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 = "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 = "application/json", 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}")
|
@GetMapping("/{id}")
|
||||||
ResponseEntity<UserResponse> findById(
|
ResponseEntity<UserResponse> findById(
|
||||||
@Parameter(description = "User id", required = true, example = "6927c8c75efcfda14c3ea570")
|
@Parameter(description = "User id", required = true, example = "6927c8c75efcfda14c3ea570") @PathVariable(name = "id") final String id);
|
||||||
@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.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import br.com.rayankonecny.userserviceapi.controller.UserController;
|
import br.com.rayankonecny.userserviceapi.controller.UserController;
|
||||||
|
|
||||||
import br.com.rayankonecny.userserviceapi.service.UserService;
|
import br.com.rayankonecny.userserviceapi.service.UserService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
import main.java.models.requests.CreateUserRequest;
|
||||||
import main.java.models.responses.UserResponse;
|
import main.java.models.responses.UserResponse;
|
||||||
|
|
||||||
|
import static org.springframework.http.HttpStatus.CREATED;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class UserControllerImpl implements UserController {
|
public class UserControllerImpl implements UserController {
|
||||||
|
|
@ -16,8 +18,14 @@ public class UserControllerImpl implements UserController {
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<UserResponse> findById(String id) {
|
public ResponseEntity<UserResponse> findById(final String id) {
|
||||||
return ResponseEntity.ok().body(userService.findById(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;
|
package br.com.rayankonecny.userserviceapi.mapper;
|
||||||
|
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.Mapping;
|
||||||
|
|
||||||
import br.com.rayankonecny.userserviceapi.entity.User;
|
import br.com.rayankonecny.userserviceapi.entity.User;
|
||||||
|
import main.java.models.requests.CreateUserRequest;
|
||||||
import main.java.models.responses.UserResponse;
|
import main.java.models.responses.UserResponse;
|
||||||
|
|
||||||
import static org.mapstruct.NullValuePropertyMappingStrategy.IGNORE;
|
import static org.mapstruct.NullValuePropertyMappingStrategy.IGNORE;
|
||||||
|
|
@ -12,4 +14,7 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||||
public interface UserMapper {
|
public interface UserMapper {
|
||||||
|
|
||||||
UserResponse fromEntity(final User entity);
|
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 lombok.RequiredArgsConstructor;
|
||||||
import main.java.models.responses.UserResponse;
|
import main.java.models.responses.UserResponse;
|
||||||
import main.java.models.exceptions.ResourceNotFoundException;
|
import main.java.models.exceptions.ResourceNotFoundException;
|
||||||
|
import main.java.models.requests.CreateUserRequest;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
|
@ -21,4 +22,8 @@ public class UserService {
|
||||||
"Object not found! Id: " + id + ", Type: " + UserResponse.class.getSimpleName())));
|
"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