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 : 소셜링 수정 #44

Merged
merged 22 commits into from
Aug 2, 2024
Merged

Feat : 소셜링 수정 #44

merged 22 commits into from
Aug 2, 2024

Conversation

hd0rable
Copy link
Member

@hd0rable hd0rable commented Aug 1, 2024

요약 (Summary)

  • 소셜링 수정 화면에 대한 api를 구현했습니다. 소셜링수정 명세서
  • 소셜링을 수정하고 자하는 Member가 CAPTAIN일 경우에만 수정 가능하도록 구현했습니다.

🔑 변경 사항 (Key Changes)

  • exception class 작성 : 예외처리를 위한 exception, exceptionHandler 클래스 작성 했습니다.
  • BaseExceptionResponseStatus 작성 : membersocialring 관련 예외처리 추가했습니다.
  • SocialringController.modifySocialring 작성 : 소셜링 수정을 위한 컨트롤러 작성했습니다.
  • Socialring UpdateSocialringInfo 작성 : 소셜링 수정을 위한 Socialring객체에 UpdateSocialringInfo 작성했습니다.
  • PatchSocialringModifyRequest dto 작성 : 명세서 대로 구현했습니다.
  • Socialring/MemberSocialringRepository 작성 : 소셜링 수정을 위한 레포지토리파일을 작성했습니다.
  • SocialringService.modifySocialring 작성 : 소셜링 수정을 위한 소셜링 서비스 작성했습니다.
  • MemberSocialringService.ConfirmCaptainMemberSocialring 구현 : 소셜링 수정을 하고자할때 접근하는 멤버가 CAPTAIN인 경우에만 수정을 할 수 있도록 구현했습니다.

📝 리뷰 요구사항 (To Reviewers)

  • 소셜링 수정이 제대로 되는지
  • 멤버가 CAPTAIN인 경우에만 소셜링 수정이 제대로 되는지

확인 방법

코드를 실행시키고, 레디스도 실행시켜주세요.
mysql workbench에서 다음 쿼리문을 실행시켜주세요.

use likelion12;

INSERT INTO exercise (created_at, modified_at,exercise_name, status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', '축구', 'ACTIVE');

INSERT INTO member (created_at, modified_at, email, member_img, member_name, gender,exercise_id,status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', '[email protected]', '프로필 이미지', '강희진', 'F', 1,'ACTIVE');

INSERT INTO member (created_at, modified_at, email, member_img, member_name, gender,exercise_id,status) VALUES
('2024-07-30 12:00:00.000000', '2024-07-30 12:30:00.000000', '[email protected]', '프로필 이미지', '강의진', 'F', 1,'ACTIVE');

INSERT INTO activity_region (created_at, modified_at, activity_region_name,status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', '광진구','ACTIVE');
INSERT INTO facility (created_at, modified_at, facility_name, facility_address, facility_phone,facility_size, administer, 
weekday, weekend, status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', '광진구 체육관', '광진구 샬라샬라', '000-0000', '3층규모', '서울시','2024-06-30 12:30:00.000000','2024-06-30 12:30:00.000000','ACTIVE');

insert INTO socialring(socialring_cost,socialring_date,total_recruits,activity_region_id,created_at,
exercise_id,facility_id,modified_at,comment,comment_simple,socialring_img,socialring_name,gender,level,status) VALUES
(0, '2024-07-31',10,1,'2024-06-30 12:00:00.000000',1,1,'2024-06-30 12:30:00.000000', '소셜링 설명', '소셜링 한줄설명','소셜링 이미지', '광진 소셜링','F', 'A','ACTIVE');

insert INTO socialring(socialring_cost,socialring_date,total_recruits,activity_region_id,created_at,
exercise_id,facility_id,modified_at,comment,comment_simple,socialring_img,socialring_name,gender,level,status) VALUES
(0, '2024-07-31',8,1,'2024-06-30 12:00:00.000000',1,1,'2024-06-30 12:30:00.000000', '소셜링 설명1', '소셜링 한줄설명12','소셜링 이미지', '광진구 소셜링','F', 'S','ACTIVE');

insert INTO member_socialring(created_at,member_id,modified_at,socialring_id,role,status) values
('2024-06-30 12:00:00.000000',1,'2024-06-30 12:30:00.000000',1,'CAPTAIN','ACTIVE');

insert INTO member_socialring(created_at,member_id,modified_at,socialring_id,role,status) values
('2024-06-30 12:00:00.000000',1,'2024-06-30 12:30:00.000000',2,'CREW','ACTIVE');

insert INTO member_socialring(created_at,member_id,modified_at,socialring_id,role,status) values
('2024-06-30 12:00:00.000000',2,'2024-06-30 12:30:00.000000',2,'CAPTAIN','ACTIVE');

그 다음 카카오 소셜 로그인을 해주세요.

https://kauth.kakao.com/oauth/authorize?client_id=220ac935aaf5aa43884ee21823d82237&redirect_uri=http://localhost:8080/auth/kakao/callback&response_type=code

엑세스토근을 postman에 넣고 테스트 해주세요

http://localhost:8080/socialring?socialringId=1

다음 주소로 FATCH 요청 보내주세요
body는 다음과 같이 구성됩니다. (아이디값들은 변경하시면 안됩니다.)

{
	"socialringName" : null,
	"socialringImg" : "이미지url123",
	"activityRegionId" : 1,
	"facilityId" : null,
	"exerciseId" : 1,
	"totalRecruits" : 15,
	"socialringDate" : "2024-07-30",
	"socialringCost" : 10000,
	"comment" : "바꾼소셜링설명",
	"commentSimple" : "바꾼소셜링한줄설명",
	"gender" : null,
	"level" : null
}

image

위와 같이 뜨면 소셜링 수정에 성공입니다 !

image

데이터베이스에서도 확인가능합니다!

멤버가 CAPTAIN일떄만 소셜링을 수정할수 있기에 쿼리문에 멤버아이디가 1인 멤버는 소셜링아이디가 2인 소셜링의 크루로 쿼리문을 작성했습니다.

http://localhost:8080/socialring?socialringId=2
다음 주소로 FATCH 요청 보내주세요
body는 위에서 사용했던거 그대로 사용하면됩니다.

image
위와 같이 뜨면 CAPTAIN이 아닌 CREW의 role일 경우 소셜링 수정을 할수없기에, 성공입니다!

@hd0rable hd0rable linked an issue Aug 1, 2024 that may be closed by this pull request
@jsilver01 jsilver01 changed the title 13 be 소셜링 수정 Feat : 소셜링 수정 Aug 1, 2024
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.

리뷰도 너무 잘 적어주셔서 좋았고 코드도 잘 돌아가게 작성하신 것 같습니다! 예외처리도 적절하고 데이터베이스에도 전부 잘 반영됩니다!
제가 수정사항 말씀 드린 부분만 한번 확인 부탁드려요
스크린샷 2024-08-02 오후 1 04 08
스크린샷 2024-08-02 오후 1 04 20
스크린샷 2024-08-02 오후 1 04 42
수고하셨습니다~

Copy link
Member

Choose a reason for hiding this comment

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

오 잘 넣으셨네요!! 👍

Copy link
Member

Choose a reason for hiding this comment

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

주석 달아주신거 너무 좋습니다~

Copy link
Member

Choose a reason for hiding this comment

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

제가 이거 명진님이랑만 말한거 같은데 저기서 activityRegionId 랑 facilityId, exerciseId 로 넘겨주지 말고 (저 3개는 id 로 요청할 일이 거의 없으니까요!) 차라리 그냥 프론트에서 바로 사용할 수 있도록 String 인 이름값으로 넘겨주면 어떨까요??? activityRegionId -> activityRegionName / facilityId -> facilityName / exerciseId -> exerciseName 이렇게요!

Copy link
Member Author

Choose a reason for hiding this comment

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

감사합니다! 참고하여 수정하겠습니다!!

/**
* 소셜링 수정,삭제 시 접근하는 member가 CAPTAIN 인지 확인
*/
@Transactional
Copy link
Member

Choose a reason for hiding this comment

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

여기 메소드 단순히 CAPTAIN 인지 아닌지 조회하는 부분 맞나요?? 맞다면 단순 조회고 데이터베이스에는 아무런 영향을 주지 않기 때문에 트랜잭션 어노테이션은 사용하지 않으셔도 무방합니다~

@jsilver01
Copy link
Member

충돌은 제가 수정해두어서 13-be-소셜링-수정 브랜치 (지금 현재 브랜치) 한번 풀받아서 작업해주시면 될 것 같습니당

@hd0rable
Copy link
Member Author

hd0rable commented Aug 2, 2024

말씀해주신대로 Id값 요청에서 Name값으로 요청하는것으로 변경했습니다!

use likelion12;

INSERT INTO exercise (created_at, modified_at,exercise_name, status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', '축구', 'ACTIVE');
INSERT INTO exercise (created_at, modified_at,exercise_name, status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', '배구', 'ACTIVE');

INSERT INTO member (created_at, modified_at, email, member_img, member_name, gender,exercise_id,status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', '[email protected]', '프로필 이미지', '강희진', 'F', 1,'ACTIVE');

INSERT INTO member (created_at, modified_at, email, member_img, member_name, gender,exercise_id,status) VALUES
('2024-07-30 12:00:00.000000', '2024-07-30 12:30:00.000000', '[email protected]', '프로필 이미지', '강의진', 'F', 1,'ACTIVE');

INSERT INTO activity_region (created_at, modified_at, activity_region_name,status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', '광진구','ACTIVE');
INSERT INTO facility (created_at, modified_at, facility_name, facility_address, facility_phone,facility_size, administer, 
weekday, weekend, status) VALUES
('2024-06-30 12:00:00.000000', '2024-06-30 12:30:00.000000', '광진구 체육관', '광진구 샬라샬라', '000-0000', '3층규모', '서울시','2024-06-30 12:30:00.000000','2024-06-30 12:30:00.000000','ACTIVE');

insert INTO socialring(socialring_cost,socialring_date,total_recruits,activity_region_id,created_at,
exercise_id,facility_id,modified_at,comment,comment_simple,socialring_img,socialring_name,gender,level,status) VALUES
(0, '2024-07-31',10,1,'2024-06-30 12:00:00.000000',1,1,'2024-06-30 12:30:00.000000', '소셜링 설명', '소셜링 한줄설명','소셜링 이미지', '광진 소셜링','F', 'A','ACTIVE');

insert INTO socialring(socialring_cost,socialring_date,total_recruits,activity_region_id,created_at,
exercise_id,facility_id,modified_at,comment,comment_simple,socialring_img,socialring_name,gender,level,status) VALUES
(0, '2024-07-31',8,1,'2024-06-30 12:00:00.000000',1,1,'2024-06-30 12:30:00.000000', '소셜링 설명1', '소셜링 한줄설명12','소셜링 이미지', '광진구 소셜링','F', 'S','ACTIVE');

insert INTO member_socialring(created_at,member_id,modified_at,socialring_id,role,status) values
('2024-06-30 12:00:00.000000',1,'2024-06-30 12:30:00.000000',1,'CAPTAIN','ACTIVE');

insert INTO member_socialring(created_at,member_id,modified_at,socialring_id,role,status) values
('2024-06-30 12:00:00.000000',1,'2024-06-30 12:30:00.000000',2,'CREW','ACTIVE');

insert INTO member_socialring(created_at,member_id,modified_at,socialring_id,role,status) values
('2024-06-30 12:00:00.000000',2,'2024-06-30 12:30:00.000000',2,'CAPTAIN','ACTIVE');

mysql workbench 위의 쿼리문을 작성해주세요

그 다음 카카오 소셜 로그인을 해주세요.

https://kauth.kakao.com/oauth/authorize?client_id=220ac935aaf5aa43884ee21823d82237&redirect_uri=http://localhost:8080/auth/kakao/callback&response_type=code

엑세스토근을 postman에 넣고 테스트 해주세요

http://localhost:8080/socialring?socialringId=1

다음 주소로 FATCH 요청 보내주세요
body는 다음과 같이 구성됩니다.

{
	"socialringName" : null,
	"socialringImg" : "이미지url123",
	"activityRegioName" : null,
	"facilityName" : null,
	"exerciseName" : "배구",
	"totalRecruits" : 15,
	"socialringDate" : "2024-07-30",
	"socialringCost" : 10000,
	"comment" : "바꾼소셜링설명",
	"commentSimple" : "바꾼소셜링한줄설명",
	"gender" : null,
	"level" : null
}
image

위와 같이 뜨면 성공입니다!

image 데이터 베이스에서 확인해보면 기존 exerciseid가 1이었던 축구가 id가 2인 배구로 수정된 것을 확인할 수 있습니다!

@jsilver01
Copy link
Member

수고하셨어요! 머지하겠습니다

@jsilver01 jsilver01 merged commit c504ace into develop Aug 2, 2024
@jsilver01 jsilver01 deleted the 13-be-소셜링-수정 branch August 2, 2024 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BE] 소셜링 수정
2 participants