Skip to content

Commit

Permalink
feat: 온보딩 멤버 정보 수정하기 (#71)
Browse files Browse the repository at this point in the history
* feat: 온보딩 멤버 수정 메서드 구현

* feat: 온보딩 멤버 수정 controller 구현

* feat: 온보딩 멤버 수정 controller 구현

* feat: 온보딩 멤버 수정 dto 구현

* refactor: endpoint 변경
  • Loading branch information
Sangwook02 authored Feb 13, 2024
1 parent d5775e4 commit 0e43b24
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

import com.gdschongik.gdsc.domain.member.application.OnboardingMemberService;
import com.gdschongik.gdsc.domain.member.dto.request.MemberSignupRequest;
import com.gdschongik.gdsc.domain.member.dto.request.OnboardingMemberUpdateRequest;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
Expand All @@ -26,4 +28,11 @@ public ResponseEntity<Void> signupMember(@Valid @RequestBody MemberSignupRequest
onboardingMemberService.signupMember(request);
return ResponseEntity.ok().build();
}

@Operation(summary = "디스코드 회원 정보 수정", description = "디스코드 회원 정보를 수정합니다.")
@PutMapping("/me/discord")
public ResponseEntity<Void> updateMember(@Valid @RequestBody OnboardingMemberUpdateRequest request) {
onboardingMemberService.updateMember(request);
return ResponseEntity.ok().build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.gdschongik.gdsc.domain.member.domain.Member;
import com.gdschongik.gdsc.domain.member.dto.request.MemberSignupRequest;
import com.gdschongik.gdsc.domain.member.dto.request.OnboardingMemberUpdateRequest;
import com.gdschongik.gdsc.global.util.MemberUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -20,4 +21,10 @@ public void signupMember(MemberSignupRequest request) {
currentMember.signup(
request.studentId(), request.name(), request.phone(), request.department(), request.email());
}

@Transactional
public void updateMember(OnboardingMemberUpdateRequest request) {
Member currentMember = memberUtil.getCurrentMember();
currentMember.updateDiscordInfo(request.discordUsername(), request.nickname());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -161,4 +161,11 @@ private void validateUnivStatus() {
public void grant() {
this.role = MemberRole.USER;
}

public void updateDiscordInfo(String discordUsername, String nickname) {
validateStatusUpdatable();

this.discordUsername = discordUsername;
this.nickname = nickname;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.gdschongik.gdsc.domain.member.dto.request;

import static com.gdschongik.gdsc.global.common.constant.RegexConstant.*;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;

public record OnboardingMemberUpdateRequest(
@NotBlank @Schema(description = "discord username") String discordUsername,
@NotBlank
@Pattern(regexp = NICKNAME, message = "닉네임은 " + NICKNAME + " 형식이어야 합니다.")
@Schema(description = "커뮤니티 닉네임", pattern = NICKNAME)
String nickname) {}

0 comments on commit 0e43b24

Please sign in to comment.