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

Member 생성, 조회, 수정 구현 #12

Merged
merged 13 commits into from
Jan 22, 2025
Merged
Copy link
Collaborator

Choose a reason for hiding this comment

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

class 에 transactional readOnly 걸고, write 하는 메소드만 다시 어노테이션 거는게 어떠하옵니까

Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package com.gdgoc.study_group.member.application;

import com.gdgoc.study_group.member.dao.MemberRepository;
import com.gdgoc.study_group.member.domain.Member;
import com.gdgoc.study_group.member.dto.request.MemberCreateRequestDto;
import com.gdgoc.study_group.member.dto.request.MemberUpdateRequestDto;
import java.util.NoSuchElementException;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@RequiredArgsConstructor
public class MemberService {

private final MemberRepository memberRepository;

/**
* 새 멤버를 생성합니다.
*
* @param request 새로 만들 멤버 정보
* @return Member 형태로 반환
*/
public Member createMember(MemberCreateRequestDto request) {

Member newMember =
Member.builder()
.name(request.getName())
.github(request.getGithub())
.studentNumber(request.getStudentNumber())
.build();

return memberRepository.save(newMember);
}

/**
* 멤버를 조회합니다.
*
* @param memberId 멤버를 조회할 정보
* @return Member 형태로 반환
*/
public Member getMember(Long memberId) {
return memberRepository
.findById(memberId)
.orElseThrow(() -> new NoSuchElementException("member not found"));
}

/**
* 멤버가 정보를 수정합니다.
*
* @param memberId 멤버를 조회할 정보
* @param request 수정할 정보
*/
@Transactional
public void updateMember(Long memberId, MemberUpdateRequestDto request) {

Member member = getMember(memberId);

member.updateMember(request.getName(), request.getGithub(), request.getStudentNumber());
}
}