인터페이스 7일차 (Update)
2023. 1. 11. 09:54ㆍ코딩배움일지/인터페이스 구현
Update
update.
UserControllelr에 patchmapping 추가
@PatchMapping("") // 패치가 성공하면은 유저정보를 다시 겟 한다. //
public ResponseDto<GetUserResponseDto> patchUser(@RequestBody PatchUserDto requestBody){
return userService.patchUser(requestBody);
}
GetUserResponseDto 형식을 가져 와야 한다.
package com.jingu.board.dto.auth;
import com.jingu.board.entity.MemberEntity;
import lombok.AllArgsConstructor;
//import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
//@Builder
public class GetUserResponseDto { //생성자 get set constructor 만드는 대신 annotation
private String email;
private String nickName;
private String profile;
private String telNumber;
private String address;
public GetUserResponseDto(MemberEntity member) { // 생성자 필요한 형태로 가져다 쓴다.
this.email = member.getEmail();
this.nickName = member.getNickname();
this.profile = member.getProfile();
this.telNumber = member.getTelNumber();
this.address = member.getAddress();
}
}
PatchUserDto 생성
package com.jingu.board.dto.user;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PatchUserDto {
private String email;
private String nickname;
private String profile;
}
UserService 안에 patchUser
public ResponseDto<GetUserResponseDto> patchUser(PatchUserDto dto) {
// dto에서 이메일을 가져옴
String email = dto.getEmail();
// repository를 이용해서 데이터베이스에 있는 member 테이블 중
// 지정한 email에 해당하는 데이터를 불러옴
MemberEntity member = null;
try {
member = memberRepository.findById(email).get();
} catch (Exception e) {
// 만약 존재하지 않으면 FailResponse 로 "Not Exist User" 반환
return ResponseDto.setFailed("Not Exist User");
}
// Requset Body 로 받은 nickname 과 profile 로 각각 변경
member.setNickname(dto.getNickname());
member.setProfile(dto.getProfile());
// 변경한 entity를 repository를 이용해서 데이터베이스에 적용(저장)
memberRepository.save(member);
// 결과를 ResponseDto에 담아서 변환
return ResponseDto.setSuccess("User Patch Success", new GetUserResponseDto(member));
}
'코딩배움일지 > 인터페이스 구현' 카테고리의 다른 글
인터페이스 7일차 (파일업로드, 다운로드, 이미지 출력) (0) | 2023.01.11 |
---|---|
인터페이스 7일차 (Delete) (0) | 2023.01.11 |
인터페이스 6일차 (회원가입 및 중복여부확인 Create, Read) (0) | 2023.01.10 |
인터페이스 5일차(Repository) (0) | 2023.01.09 |
인터페이스 5일차 (Service, Autowired, JPA, ORM) (0) | 2023.01.09 |