티스토리 뷰

728x90

 

🍊 거주 정보 등록

 

✔️ JPA의 JoinColumn을 사용할 경우 사용자 아이디를 다음과 같은 형식으로 넘겨주면 된다. 

 

✔️ 거주 시작 기간과 거주 종료 기간의 포맷을 Timestamp에 맞게 잘 보내주자!! 

 

{
    "response": "success",
    "message": "거주정보 등록을 성공적으로 완료했습니다.",
    "data": {
        "id": 4,
        "user": {
            "id": 1,
            "email": "1@test.com",
            "password": "{bcrypt}$2a$10$66sbtOJdTCPZrqMkESiQgulKwKFwClU/5AT7SaecqgJxlTvDeAaAu",
            "type": false,
            "useMatching": false,
            "createAt": "2021-11-16T14:27:15.183+00:00",
            "removeAt": null,
            "roles": [
                "ROLE_USER"
            ],
            "enabled": true,
            "authorities": [
                {
                    "authority": "ROLE_USER"
                }
            ],
            "username": "1@test.com",
            "credentialsNonExpired": true,
            "accountNonExpired": true,
            "accountNonLocked": true
        },
        "headcount": 2,
        "location": "성북구",
        "budget": 500000,
        "termStart": "2021-10-31T00:00:00.000+00:00",
        "termEnd": "2022-05-20T23:59:00.000+00:00"
    }
}

 

🍊 거주 정보 조회

{
    "response": "success",
    "message": "거주정보 조회를 성공적으로 완료했습니다.",
    "data": {
        "id": 5,
        "user": {
            "id": 1,
            "email": "1@test.com",
            "password": "{bcrypt}$2a$10$66sbtOJdTCPZrqMkESiQgulKwKFwClU/5AT7SaecqgJxlTvDeAaAu",
            "type": false,
            "useMatching": false,
            "createAt": "2021-11-16T14:27:15.183+00:00",
            "removeAt": null,
            "roles": [
                "ROLE_USER"
            ],
            "enabled": true,
            "authorities": [
                {
                    "authority": "ROLE_USER"
                }
            ],
            "username": "1@test.com",
            "credentialsNonExpired": true,
            "accountNonExpired": true,
            "accountNonLocked": true
        },
        "headcount": 2,
        "location": "성북구",
        "budget": 500000,
        "termStart": "2021-10-31T00:00:00.000+00:00",
        "termEnd": "2022-05-20T23:59:00.000+00:00"
    }
}

 

🍊 거주 정보 변경

✔️ 일단 PUT으로 전체 변경, 일부 변경 모두 가능하도록 구현하였다.

아래처럼 파라미터 각각에 대해 널처리를 하는데 이게 맞는지 모르겠다...

public ResidenceInfo updateResidenceInfo(Long uid, ResidenceInfo info) {
    User user = userRepository.findById(uid)
            .orElseThrow(() -> new IllegalArgumentException("가입되지 않은 사용자입니다."));

    ResidenceInfo residenceInfo = residenceInfoRepository.findByUser(user)
            .orElseThrow(() -> new IllegalArgumentException("거주정보가 등록되어있지 않습니다."));

    if (info.getHeadcount() != 0)
        residenceInfo.setHeadcount(info.getHeadcount());
    if (info.getLocation() != null)
        residenceInfo.setLocation(info.getLocation());
    if (info.getBudget() != 0)
        residenceInfo.setBudget(info.getBudget());
    if (info.getTermStart() != null)
        residenceInfo.setTermStart(info.getTermStart());
    if (info.getTermEnd() != null)
        residenceInfo.setTermEnd(info.getTermEnd());

    return residenceInfoRepository.save(residenceInfo);
}

{
    "response": "success",
    "message": "프로필 수정을 성공적으로 완료했습니다.",
    "data": {
        "id": 5,
        "user": {
            "id": 1,
            "email": "1@test.com",
            "password": "{bcrypt}$2a$10$66sbtOJdTCPZrqMkESiQgulKwKFwClU/5AT7SaecqgJxlTvDeAaAu",
            "type": false,
            "useMatching": false,
            "createAt": "2021-11-16T14:27:15.183+00:00",
            "removeAt": null,
            "roles": [
                "ROLE_USER"
            ],
            "enabled": true,
            "username": "1@test.com",
            "authorities": [
                {
                    "authority": "ROLE_USER"
                }
            ],
            "accountNonLocked": true,
            "credentialsNonExpired": true,
            "accountNonExpired": true
        },
        "headcount": 3,
        "location": "혜화동",
        "budget": 500000,
        "termStart": "2021-10-31T00:00:00.000+00:00",
        "termEnd": "2022-05-25T00:00:00.000+00:00"
    }
}

 

🍊 거주 정보 삭제

{
    "response": "success",
    "message": "거주정보 삭제를 성공적으로 완료했습니다.",
    "data": null
}

 


Ref.

OKKY - ※초보주의 Spring JPA Entity JoinColum 값 RequestParam이나 RequestBody로 받는법

SpringMVC - @RequestBody로 Timestamp 전달하기 (@JsonFormat : timezone 설정, 입력형식 정하기) (tistory.com)

728x90
댓글
공지사항
최근에 올라온 글