티스토리 뷰
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
'프로젝트' 카테고리의 다른 글
[프로젝트/mnm] Vue - Spring 채팅 구현 (0) | 2021.11.21 |
---|---|
[프로젝트/mnm] Spring - 매칭 정보 관리 REST API 구현 (2) | 2021.11.17 |
[프로젝트/mnm] Spring - 이미지 저장, 조회 REST API 구현 (4) | 2021.11.17 |
[프로젝트/mnm] Spring - 프로필 관리 REST API 구현 (0) | 2021.11.17 |
[프로젝트/mnm] Spring - 회원가입, 로그인 구현 (JWT 인증) (0) | 2021.11.14 |
댓글
공지사항
최근에 올라온 글