
CompService
@Transactional
public User updateById(User sessionUser, CompRequest.UpdateDTO requestDTO) {
User user = compJPARepo.findById(sessionUser.getId())
.orElseThrow(() -> new Exception401("로그인이 필요한 서비스입니다."));
if (requestDTO.getMyName() != null) {
user.setMyName(requestDTO.getMyName());
}
if (requestDTO.getPassword() != null) {
user.setPassword(requestDTO.getPassword());
}
if (requestDTO.getCompName() != null) {
user.setCompName(requestDTO.getCompName());
}
if (requestDTO.getPhone() != null) {
user.setPhone(requestDTO.getPhone());
}
if (requestDTO.getHomepage() != null) {
user.setHomepage(requestDTO.getHomepage());
}
if (requestDTO.getBirth() != null) {
user.setBirth(requestDTO.getBirth());
}
if (requestDTO.getBusinessNumber() != null) {
user.setBusinessNumber(requestDTO.getBusinessNumber());
}
if (requestDTO.getAddress() != null) {
user.setAddress(requestDTO.getAddress());
}
return user;
}
CompResponse
public class CompResponse {
//기업 회원정보 업데이트 DTO
@Data
public static class CompUpdateDTO {
private Integer id;
private String myName;
private String compName;
private String phone;
private String businessNumber;
private String homepage;
private LocalDate birth;
private String address;
@Builder
public CompUpdateDTO(User user) {
this.id = user.getId();
this.myName = user.getMyName();
this.compName = user.getCompName();
this.phone = user.getPhone();
this.businessNumber = user.getBusinessNumber();
this.homepage = user.getHomepage();
this.birth = user.getBirth();
this.address = user.getAddress();
}
}
CompController
//update
@PutMapping("/api/comps/{id}")
public ResponseEntity<?> update(@PathVariable Integer id, @RequestBody CompRequest.UpdateDTO requestDTO) {
User sessionComp = (User) session.getAttribute("sessionComp");
User user = compService.updateById(sessionComp, requestDTO);
session.setAttribute("sessionComp", user);
return ResponseEntity.ok(new ApiUtil<>(requestDTO));
}
//update-form
@GetMapping("/api/comps/{id}")
public ResponseEntity<?> updateForm(@PathVariable int id) {
User sessionComp = (User) session.getAttribute("sessionComp");
CompResponse.CompUpdateDTO respDTO = compService.findById(sessionComp.getId());
// request.setAttribute("user", newSessionUser);
return ResponseEntity.ok(new ApiUtil<>(respDTO));
}
json
[ GET - http://localhost:8080/api/comps/15 ]
{
"status": 200,
"msg": "성공",
"body": {
"id": 15,
"myName": "네이버",
"compName": "네이버",
"phone": "010-5678-5822",
"businessNumber": "301-15-12412",
"homepage": "www.naver.com",
"birth": "1999-06-02",
"address": "부산광역시 부산진구 범향빌딩403호"
}
}
[ PUT - http://localhost:8080/api/comps/15 ]
{
"myName" : "김성훈",
"compName" : "그린컴퓨터아카데미",
"phone" : "010-1111-2222",
"birth" : "2023-03-05"
}
업데이트 정보 입력
{
"status": 200,
"msg": "성공",
"body": {
"myName": "김성훈",
"password": null,
"compName": "그린컴퓨터아카데미",
"phone": "010-1111-2222",
"address": null,
"birth": "2023-03-05",
"businessNumber": null,
"homepage": null
}
}
이렇게 날아감
{
"status": 200,
"msg": "성공",
"body": {
"id": 15,
"myName": "김성훈",
"compName": "그린컴퓨터아카데미",
"phone": "010-1111-2222",
"businessNumber": "301-15-12412",
"homepage": "www.naver.com",
"birth": "2023-03-05",
"address": "부산광역시 부산진구 범향빌딩403호"
}
}
재조회
[ DB 조회 ]

Share article