// 부분 업데이트 : PATCH // - (username:"******") // - (passowrd:"pass") // - (fullName:"seokgon lee") @RequestMapping(value = "/accounts/{id}", method = PUT) public ResponseEntity updateAccount( @PathVariable Long id, @RequestBody @Valid AccountDto.Update updateDto, BindingResult result) { if (result.hasErrors()) { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } Account updateAccount = service.updateAccount(id, updateDto); return new ResponseEntity<>( modelMapper.map(updateAccount, AccountDto.Response.class), HttpStatus.OK); }
@RequestMapping(value = "/accounts", method = POST) public ResponseEntity createAccount( @RequestBody @Valid AccountDto.Create create, BindingResult result) { if (result.hasErrors()) { ErrorResponse errorResponse = new ErrorResponse(); errorResponse.setMessage("잘못된 요청입니다."); errorResponse.setCode("bad.request"); // TODO bindingResult 안에 들어있는 에러 정보 사용하기. return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST); } // 1.리턴 타임으로 판단. // 2.파라미터 이용. Account newAccount = service.createAccount(create); return new ResponseEntity<>( modelMapper.map(newAccount, AccountDto.Response.class), HttpStatus.CREATED); }
@RequestMapping(value = "/accounts/{id}", method = DELETE) public ResponseEntity deleteAccount(@PathVariable Long id) { service.deleteAccount(id); return new ResponseEntity<>(HttpStatus.NO_CONTENT); }
@RequestMapping(value = "accounts/{id}", method = GET) @ResponseStatus(HttpStatus.OK) public AccountDto.Response getAccount(@PathVariable Long id) { Account account = service.getAccount(id); return modelMapper.map(account, AccountDto.Response.class); }