Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @RestController
- @RequestMapping(UserController.USER_CONTROLLER_BASIC_URL)
- public class UserController {
- public static final String USER_CONTROLLER_BASIC_URL = "/api/v1/users";
- private final UserService userService;
- private final ProductService productService;
- private final ShoppingCartService shoppingCartService;
- @Autowired
- public UserController(UserService userService, ProductService productService, ShoppingCartService shoppingCartService) {
- this.userService = userService;
- this.productService = productService;
- this.shoppingCartService = shoppingCartService;
- }
- @GetMapping
- @ResponseStatus(HttpStatus.OK)
- public UserListDTO getListOfUsers() {
- return userService.getAllUsers();
- }
- @GetMapping("/{id}")
- @ResponseStatus(HttpStatus.OK)
- public UserDTO getUserById(@PathVariable Long id) {
- return userService.getUserById(id);
- }
- @PostMapping
- @ResponseStatus(HttpStatus.CREATED)
- public UserDTO createNewUser(@RequestBody @Valid UserDTO userDTO) {
- return userService.createNewUser(userDTO);
- }
- @PutMapping("/{id}")
- @ResponseStatus(HttpStatus.OK)
- public UserDTO updateUser(@PathVariable Long id, @RequestBody @Valid UserDTO userDTO) {
- return userService.updateUser(id, userDTO);
- }
- @PatchMapping("/{id}")
- @ResponseStatus(HttpStatus.OK)
- public UserDTO patchUser(@PathVariable Long id, @RequestBody @Valid UserDTO userDTO) {
- return userService.patchUser(id, userDTO);
- }
- @DeleteMapping("/{id}")
- @ResponseStatus(HttpStatus.OK)
- public void deleteUserById(@PathVariable Long id) {
- userService.deleteUserById(id);
- }
- @GetMapping("/{id}/shoppingCarts") //todo refactor this to retrieve All shopping Carts
- @ResponseStatus(HttpStatus.OK)
- public ShoppingCartDTO getListOfAllShoppingCarts(@PathVariable Long id) {
- return userService.getUserById(id).getShoppingCartDTO(); //todo update it to pass a list ( after auditing problem)
- }
- @PostMapping("/{id}/shoppingCarts")
- @ResponseStatus(HttpStatus.CREATED)
- public ShoppingCartDTO addNewShoppingCart(@PathVariable Long id, @RequestBody @Valid ShoppingCartDTO shoppingCartDTO) {
- shoppingCartDTO.setUserDTO(userService.getUserById(id));
- ShoppingCartDTO savedShoppingCard = shoppingCartService.createNewShoppingCart(shoppingCartDTO);
- userService.getUserById(id).setShoppingCartDTO(savedShoppingCard); //todo add exception for already active cart
- return savedShoppingCard;
- }
- @GetMapping("/{id}/products")
- @ResponseStatus(HttpStatus.OK)
- public ProductListDTO getListOfAllUsersProducts(@PathVariable Long id) {
- return new ProductListDTO(userService.getUserById(id).getProductDTOs());
- }
- @PostMapping("/{id}/products")
- @ResponseStatus(HttpStatus.CREATED)
- public ProductDTO addNewProductToUser(@PathVariable Long id, @RequestBody @Valid ProductDTO productDTO) {
- productDTO.setUserDTO( userService.getUserById(id));
- ProductDTO savedProductDTO = productService.createNewProduct(productDTO);
- userService.getUserById(id).getProductDTOs().add(savedProductDTO);
- userService.saveUser(userService.getUserById(id));
- return savedProductDTO;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement