Skip to content

Commit

Permalink
Merge pull request #16 from dnd-side-project/refactor/#15-feedback
Browse files Browse the repository at this point in the history
Refactor/#15 feedback
  • Loading branch information
RTUnu12 authored Jan 29, 2025
2 parents bdacdf7 + 8a9773a commit f1de490
Show file tree
Hide file tree
Showing 11 changed files with 58 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.dnd.reevserver.domain.member.controller;

import com.dnd.reevserver.domain.member.dto.request.InsertInfoRequestDto;
import com.dnd.reevserver.domain.member.dto.request.UpdateMemberNicknameRequestDto;
import com.dnd.reevserver.domain.member.dto.request.UpdateMemberProfileUrlRequestDto;
import com.dnd.reevserver.domain.member.dto.response.MemberResponseDto;
Expand All @@ -15,13 +16,20 @@
public class MemberController {
private final MemberService memberService;

@Operation(summary = "유저 개별 정보 불러오기")
@Operation(summary = "유저 개별 정보 불러오기, profile_url이 NA면 기본 이미지입니다.")
@GetMapping("/{userId}")
public ResponseEntity<MemberResponseDto> getMemberById(@PathVariable String userId) {
MemberResponseDto response = memberService.findByUserId(userId);
return ResponseEntity.ok(response);
}

@Operation(summary = "로그인 이후 정보 기입, 이 API를 악성 이용자가 지나치면 nickname은 기본닉네임+UUID으로, Job은 NA로 구성됩니다.")
@PatchMapping("/after-login")
public ResponseEntity<Void> insertInfoAfterLogin(@RequestBody InsertInfoRequestDto dto){
memberService.insertInfoAfterLogin(dto);
return ResponseEntity.noContent().build();
}

@Operation(summary = "닉네임 수정")
@PatchMapping("/nickname")
public ResponseEntity<Void> updateNickname(@RequestBody UpdateMemberNicknameRequestDto dto) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.dnd.reevserver.domain.member.dto.request;

public record InsertInfoRequestDto(String userId, String nickname, String job) {
}
14 changes: 12 additions & 2 deletions src/main/java/com/dnd/reevserver/domain/member/entity/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,13 @@
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Member implements OAuth2User {
@Id
@Column(name = "user_id", length = 100, nullable = false, unique = true)
@Column(name = "user_id", length = 100, nullable = false)
private String userId;

@Column(name = "nickname", nullable = false, length = 100)
@Column(name = "kakao_name", nullable = false, length = 100)
private String kakaoName;

@Column(name = "nickname", nullable = false, length = 100, unique = true)
private String nickname;

@Column(name = "profile_url", nullable = false, length = 1000)
Expand All @@ -31,6 +34,9 @@ public class Member implements OAuth2User {
@Column(name = "role", nullable = false, length = 100)
private String role;

@Column(name = "job", nullable = false, length = 100)
private String job;

@Override
public Map<String, Object> getAttributes() {
return null;
Expand All @@ -53,4 +59,8 @@ public void updateNickname(String newNickname) {
public void updateProfileUrl(String newProfileUrl) {
this.profileUrl = newProfileUrl;
}

public void updateJob(String updateJob) {
this.job = updateJob;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

import java.util.Map;
import java.util.Optional;
import java.util.UUID;

@Service
@RequiredArgsConstructor
Expand All @@ -31,14 +32,13 @@ public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2Authentic

String userId = attributes.get("id").toString();
String name = (String) profile.get("nickname");
String profileImage = (String) profile.get("profile_image_url");

Optional<Member> member = memberRepository.findByUserId(userId);
if (member.isPresent()) {
return member.get();
}

Member newMember = new Member(userId, name, profileImage, "ROLE_USER");
Member newMember = new Member(userId, name, "기본 닉네임"+ UUID.randomUUID(), "NA", "ROLE_USER", "NA");

// 사용자 정보 저장
memberRepository.save(newMember);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.dnd.reevserver.domain.member.service;

import com.dnd.reevserver.domain.member.dto.request.InsertInfoRequestDto;
import com.dnd.reevserver.domain.member.dto.request.UpdateMemberNicknameRequestDto;
import com.dnd.reevserver.domain.member.dto.request.UpdateMemberProfileUrlRequestDto;
import com.dnd.reevserver.domain.member.dto.response.MemberResponseDto;
Expand Down Expand Up @@ -40,6 +41,14 @@ public void updateProfileUrl(UpdateMemberProfileUrlRequestDto dto){
member.updateProfileUrl(dto.profileUrl());
}

// 로그인 이후 정보 기입
@Transactional
public void insertInfoAfterLogin(InsertInfoRequestDto dto){
Member member = findById(dto.userId());
member.updateNickname(dto.nickname());
member.updateJob(dto.job());
}

// 회원 탈퇴
@Transactional
public void deleteMember(String userId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,14 @@
public class MemoController {
private final MemoService memoService;

@GetMapping("/{memoId}")
public ResponseEntity<MemoResponseDto> findMemoById(@PathVariable Long memoId) {
return ResponseEntity.ok(memoService.findMemoById(memoId));
}

@Operation(summary = "유저의 전체 메모 조회")
@GetMapping("/{userId}")
public ResponseEntity<List<MemoResponseDto>> getMemosByUserId(@PathVariable String userId) {
public ResponseEntity<List<MemoResponseDto>> findMemosByUserId(@PathVariable String userId) {
List<MemoResponseDto> memos = memoService.findMemosByUserId(userId);
return ResponseEntity.ok(memos);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,11 @@ public Memo findById(Long id) {
return memoRepository.findById(id).orElseThrow(MemoNotFoundException::new);
}

public MemoResponseDto findMemoById(Long id) {
return new MemoResponseDto(findById(id));
}

// 유저의 전체 메모 조회
// todo : 페이지네이션 필요
public List<MemoResponseDto> findMemosByUserId(String userId){
return memoRepository.findMemosByMember(memberService.findById(userId)).stream()
.map(MemoResponseDto::new).collect(Collectors.toList());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.dnd.reevserver.domain.template.dto.request;

public record CreateTemplateRequestDto(String userId, String templateName, String content) {
public record CreateTemplateRequestDto(String userId, String templateName, String content, String description) {
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.dnd.reevserver.domain.template.dto.request;

public record UpdateTemplateRequestDto(Long templateId, String templateName, String content) {
public record UpdateTemplateRequestDto(Long templateId, String templateName, String content, String description) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,17 @@ public class Template {
@JoinColumn(name = "user_id")
private Member member; // 유저 전용 템플릿의 소유자 (공용 템플릿일 경우 null)

@Column(name = "description", nullable = false)
private String description;


public void updateTemplateName(String newTemplateName) {
this.templateName = newTemplateName;
}

public void updateContent(String newContent) {
this.content = newContent;
}

public void updateDescription(String newDescription) { this.description = newDescription; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,14 @@ public void createCustomTemplate(CreateTemplateRequestDto dto) {
.content(dto.content())
.isPublic(false)
.member(member)
.description(dto.description())
.build();
templateRepository.save(template);
}

// 템플릿 제목, 내용 수정, isPublic이 false여만 가능, true면 PublicTemplateCannotModifyException 예외 처리
// 템플릿 제목, 내용, 설명 수정, isPublic이 false여만 가능, true면 PublicTemplateCannotModifyException 예외 처리
@Transactional
// todo : 모든 수정에 자신의 객체가 맞는지 확인해야 할 듯?
public void updateTemplate(UpdateTemplateRequestDto dto) {
Template template = findById(dto.templateId());

Expand All @@ -73,6 +75,7 @@ public void updateTemplate(UpdateTemplateRequestDto dto) {

template.updateTemplateName(dto.templateName());
template.updateContent(dto.content());
template.updateDescription(dto.description());
}

// 템플릿 삭제. isPublic이 false여만 가능, true면 PublicTemplateCannotDeleteException 예외 처리
Expand Down

0 comments on commit f1de490

Please sign in to comment.