Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat : 아바타 수정 API 구현 #17

Merged
merged 4 commits into from
Jul 8, 2024

Conversation

Mouon
Copy link
Member

@Mouon Mouon commented Jul 7, 2024

요약 (Summary)

  • 맴버의 프로필을 수정하는 API를 구현하였습니다.
  • 일부 값만 body에 포함하여도 수정이 가능하도록 구현하였습니다.

🔑 변경 사항 (Key Changes)

  • Member : updateMemberInfo 메소드 추가 -> 명세서의 값들만 포함하여 엔티티에 반영하도록하는 메소드 입니다.
  • UpdateAvatarRequest : 명세서의 요청형식을 반영한 dto클래스입니다.
  • MemberRepository : findByMemberIdAndStatus 메소드 추가 -> 맴버의 상태와 아이디를 통해 맴버를 찾는 메소드를 추가했습니다. ( 맴버아이디의 유효성을 판단하기 위함입니다.)
  • MemberService : updateAvatar메소드 추가 -> dto의 값들을 받아 엔티티에 변경사항을 반영하여 저장합니다. 이때 일부 값만 수정하여도 정상적으로 전달 되도록 하였습니다.

📝 리뷰 요구사항 (To Reviewers)

  • 명세서의 요청과 응답형식을 따르는지 확인 부탁드립니다.
스크린샷 2024-07-07 오후 4 19 26
  • 일부 값이 누락되어도 정상적으로 요청이 되는지

확인 방법

.yml의 DB를 로컬에 맞게 수정해주세요

쿼리문

use linkode;

INSERT INTO avatar (created_at, modified_at, avatar_img, status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', 'img1.png', 'ACTIVE');
INSERT INTO avatar (created_at, modified_at, avatar_img, status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', 'img2.png', 'ACTIVE');

INSERT INTO member (created_at, modified_at, avatar_id, github_id, nickname, color,status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', 1, 'Mouon', '#FFFFF','User1', 'ACTIVE');

INSERT INTO studyroom (created_at, modified_at, studyroom_name, studyroom_profile, status) VALUES
('2024-07-04 12:00:00.000000', '2024-07-04 12:00:00.000000', 'New Studyroom', 'Profile for New Studyroom', 'ACTIVE');

INSERT INTO member_studyroom (created_at, modified_at, member_id, studyroom_id, role, status) VALUES
('2024-07-04 12:00:00.000000', '2024-07-04 12:00:00.000000', 1, 1, 'CAPTAIN', 'ACTIVE');

요청 형식 예시 1 ( 모든 값 포함)

{
        "nickname" : "수정된닉네임",
	"avatarId" : 2,
	"color" : "#FFF0F"
}

요청 형식 예시 2 ( 아바타 아이디 미포함)

{
        "nickname" : "수정된닉네임3",
	"color" : "#FF00F"
}

요청 형식 예시 3 ( 닉네임 값 미포함)

{
	"avatarId" : 1,
	"color" : "#FF000F"
}

요청 형식 예시 4 ( 색상 값 미포함)

{
        "nickname" : "수정된닉네임4",
	"avatarId" : 2
}

요청 주소 [PATCH]

http://localhost:8080/user/avatar

정상적으로 변경된 모습
스크린샷 2024-07-07 오후 4 18 58

Copy link
Member

@jsilver01 jsilver01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수정된 날짜가 안찍히는 오류가 있는데 이 부분은 제 pr에서 수정한 부분이라 머지하고 나면 문제없을 것 같습니다
수고하셨습니다! 머지할게요

Member member = memberRepository.findByMemberIdAndStatus(memberId,BaseStatus.ACTIVE)
.orElseThrow(()-> new IllegalArgumentException("Invalid memberId: " + memberId));

String newNickname= request.getNickname()==null ? member.getNickname():request.getNickname() ;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 저는 if 문으로 쓸 생각만 했는데 이렇게 하면 코드 길이도 줄고 작성도 편할거같아요!

@jsilver01 jsilver01 merged commit 2ebc1e8 into develop Jul 8, 2024
@Mouon Mouon deleted the LINKODE-65-BE-API-아바타수정 branch July 9, 2024 08:36
@Mouon Mouon added the Feature Make Feat label Sep 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Make Feat
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants