Skip to content

Commit

Permalink
Merge pull request #258 from codesquad-members-2023-team6/dev
Browse files Browse the repository at this point in the history
Be: github 로그인 후 반환 형식 변경
  • Loading branch information
new-pow committed Jun 1, 2023
2 parents 8453a9e + 6f8f5fb commit 9083563
Show file tree
Hide file tree
Showing 13 changed files with 52 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.team6.issue_tracker.domain.comment.domain.Comment;
import com.team6.issue_tracker.domain.comment.domain.CommentContents;
import com.team6.issue_tracker.domain.member.domain.Member;
import com.team6.issue_tracker.domain.member.dto.MemberDto;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand All @@ -17,7 +17,7 @@ public class CommentDto {

private Long commentIdx;
private String contents;
private MemberDto writer;
private MemberDetail writer;
private Instant createdAt;
private Instant editedAt;

Expand All @@ -27,7 +27,7 @@ public static CommentDto fromComment(Comment comment, Member writer) {
.contents(comment.getContents().getContents())
.createdAt(comment.getCreatedAt())
.editedAt(comment.getEditedAt())
.writer(MemberDto.from(writer))
.writer(MemberDetail.from(writer))
.build();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.team6.issue_tracker.domain.comment.dto;

import com.team6.issue_tracker.domain.member.dto.MemberDto;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import lombok.Data;

@Data
public class CreateCommentRequest {
private String contents;
private MemberDto writer;
private MemberDetail writer;

public Long getWriterIdx() {
return writer.getMemberIdx();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,20 @@
import com.team6.issue_tracker.domain.issue.domain.Labeling;
import com.team6.issue_tracker.domain.label.dto.LabelSummary;
import com.team6.issue_tracker.domain.member.domain.Member;
import com.team6.issue_tracker.domain.member.dto.MemberDto;
import com.team6.issue_tracker.domain.milestone.domain.Milestone;
import lombok.Data;
import org.springframework.data.jdbc.core.mapping.AggregateReference;

import java.time.Instant;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Data
public class CreateIssueRequest {
private String title;
private String contents;
private MemberDto writer;
private MemberDto assignee;
private Long writer;
private Long assignee;
private List<LabelSummary> labels;
private Milestone milestone;

Expand All @@ -30,7 +27,7 @@ public Issue toIssue() {
.issueIdx(null)
.title(title)
.contents(contents)
.writer(AggregateReference.to(writer.getMemberIdx()))
.writer(AggregateReference.to(writer))
.assignee(getAssigneeRef())
.labelOnIssue(getLabelingMap(labels))
.milestone(getMilestoneRef())
Expand All @@ -49,7 +46,7 @@ private List<Labeling> getLabelingMap (List<LabelSummary> labels) {

private AggregateReference<Member, Long> getAssigneeRef() {
if (assignee != null) {
return AggregateReference.to(assignee.getMemberIdx());
return AggregateReference.to(assignee);
}
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import com.team6.issue_tracker.domain.issue.domain.Labeling;
import com.team6.issue_tracker.domain.label.dto.LabelSummary;
import com.team6.issue_tracker.domain.member.domain.Member;
import com.team6.issue_tracker.domain.member.dto.MemberDto;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import com.team6.issue_tracker.domain.milestone.domain.Milestone;
import com.team6.issue_tracker.domain.milestone.dto.MilestoneDetail;
import com.team6.issue_tracker.domain.model.Status;
Expand All @@ -28,16 +28,16 @@ public class IssueDetail {
private Long index;
private String title;
private String contents;
private MemberDto writer;
private MemberDto assignee;
private MemberDetail writer;
private MemberDetail assignee;
private Status status;
private Instant createdAt;
private Instant editedAt;
private MilestoneDetail milestone;
private List<LabelSummary> labelList;
private List<CommentDto> commentList;

public static IssueDetail toDetails(Issue issue, MemberDto writer, MemberDto assignee,
public static IssueDetail toDetails(Issue issue, MemberDetail writer, MemberDetail assignee,
List<LabelSummary> labels, MilestoneDetail milestone,
List<CommentDto> coments) {
return IssueDetail.builder()
Expand Down Expand Up @@ -83,7 +83,7 @@ private List<Labeling> getLabelOnIssue(List<LabelSummary> labelList) {
return labelingMap;
}

private AggregateReference<Member, @NotNull Long> nullableMember(MemberDto m) {
private AggregateReference<Member, @NotNull Long> nullableMember(MemberDetail m) {
if (m != null) {
return AggregateReference.to(m.getMemberIdx());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import com.team6.issue_tracker.domain.label.dto.LabelSummary;
import com.team6.issue_tracker.domain.member.service.MemberService;
import com.team6.issue_tracker.domain.member.domain.Member;
import com.team6.issue_tracker.domain.member.dto.MemberDto;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import com.team6.issue_tracker.domain.milestone.service.MilestoneService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -77,7 +77,7 @@ public IssueDetail findById(Long issueIdx){
commentDtos.add(dto);
}

return IssueDetail.toDetails(issue, MemberDto.from(writer), MemberDto.from(assignee), labelDtoList, milestone, commentDtos);
return IssueDetail.toDetails(issue, MemberDetail.from(writer), MemberDetail.from(assignee), labelDtoList, milestone, commentDtos);
}

private Map<Long, Member> findMembers(Issue issue) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.team6.issue_tracker.domain.member.controller;

import com.team6.issue_tracker.domain.member.dto.MemberDto;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import com.team6.issue_tracker.domain.member.service.MemberService;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
Expand All @@ -22,7 +22,7 @@ public class MemberController {
description = "사용자는 회원 목록을 볼 수 있다."
)
@GetMapping("/members")
public List<MemberDto> findAll() {
public List<MemberDetail> findAll() {
return new ArrayList<>(memberService.getAllMembers().values());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MemberDto {
public class MemberDetail {
Long memberIdx;
String id;
String name;
String profileImageUrl;

public static MemberDto from(Member member) {
public static MemberDetail from(Member member) {
if (member!=null) {
return new MemberDto(member.getMemberIdx(), member.getId(), member.getName(), member.getProfileImageUrl());
return new MemberDetail(member.getMemberIdx(), member.getId(), member.getName(), member.getProfileImageUrl());
}
return null;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package com.team6.issue_tracker.domain.member.service;

import com.team6.issue_tracker.domain.member.domain.Member;
import com.team6.issue_tracker.domain.member.dto.MemberDto;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import com.team6.issue_tracker.domain.member.repository.MemberRepository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

import javax.security.auth.login.LoginException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
Expand All @@ -21,20 +22,21 @@ public MemberService(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}

public void join(Member member) {
public Member join(Member member) throws LoginException {
if (!memberRepository.existsById(member.getId())) {
memberRepository.save(member);
return memberRepository.save(member);
}
throw new LoginException("로그인에 실패하였습니다.");
}

public Member findById(Long index) {
return memberRepository.findById(index).orElseThrow();
}

public Map<Long, MemberDto> getAllMembers() {
Map<Long, MemberDto> memberDtos = new HashMap<>();
public Map<Long, MemberDetail> getAllMembers() {
Map<Long, MemberDetail> memberDtos = new HashMap<>();
Iterable<Member> member = memberRepository.findAll();
member.forEach(m -> memberDtos.put(m.getMemberIdx(), MemberDto.from(m)));
member.forEach(m -> memberDtos.put(m.getMemberIdx(), MemberDetail.from(m)));
return memberDtos;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.team6.issue_tracker.domain.issue.domain.Issue;
import com.team6.issue_tracker.domain.label.dto.LabelSummary;
import com.team6.issue_tracker.domain.member.dto.MemberDto;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import com.team6.issue_tracker.domain.milestone.domain.Milestone;
import com.team6.issue_tracker.domain.model.Status;
import lombok.Builder;
Expand All @@ -18,16 +18,16 @@ public class IssueDto {

private Long index;
private String title;
private MemberDto writer;
private MemberDto assignee;
private MemberDetail writer;
private MemberDetail assignee;
private Status status;
private Instant createdAt;
private Instant editedAt;
//TODO milestone dto로 바꾸기
private Milestone milestone;
private List<LabelSummary> labelList;

public IssueDto(Long index, String title, MemberDto writer, MemberDto assignee, Status status, Instant createdAt, Instant edditedAt, Milestone milestone, List<LabelSummary> labelList) {
public IssueDto(Long index, String title, MemberDetail writer, MemberDetail assignee, Status status, Instant createdAt, Instant edditedAt, Milestone milestone, List<LabelSummary> labelList) {
this.index = index;
this.title = title;
this.writer = writer;
Expand All @@ -39,7 +39,7 @@ public IssueDto(Long index, String title, MemberDto writer, MemberDto assignee,
this.labelList = labelList;
}

public static IssueDto toDto(Issue issue, MemberDto writer, MemberDto assignee,
public static IssueDto toDto(Issue issue, MemberDetail writer, MemberDetail assignee,
List<LabelSummary> labels, Milestone milestone) {
return IssueDto.builder()
.index(issue.getIssueIdx())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.team6.issue_tracker.domain.page.dto;

import com.team6.issue_tracker.domain.label.dto.LabelSummary;
import com.team6.issue_tracker.domain.member.dto.MemberDto;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import com.team6.issue_tracker.domain.milestone.domain.Milestone;
import lombok.Builder;
import lombok.Data;
Expand All @@ -20,6 +20,6 @@ public class IssuePageResponse {
private List<IssueDto> issueList;
private List<LabelSummary> labelList;
private List<Milestone> milestoneList;
private List<MemberDto> userList;
private List<MemberDetail> userList;

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import com.team6.issue_tracker.domain.label.service.LabelService;
import com.team6.issue_tracker.domain.label.dto.LabelSummary;
import com.team6.issue_tracker.domain.member.service.MemberService;
import com.team6.issue_tracker.domain.member.dto.MemberDto;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import com.team6.issue_tracker.domain.milestone.domain.Milestone;
import com.team6.issue_tracker.domain.milestone.service.MilestoneService;
import com.team6.issue_tracker.domain.page.dto.IssuePageResponse;
Expand All @@ -33,7 +33,7 @@ public class PageService {

public IssuePageResponse getAPage(int page, IssueFilter filter) {

Map<Long, MemberDto> members = memberService.getAllMembers();
Map<Long, MemberDetail> members = memberService.getAllMembers();
Map<Long, Milestone> milestones = milestoneService.getAllMilestones();
Map<Long, LabelSummary> labels = labelService.getAllLabelSummaries();

Expand All @@ -44,8 +44,8 @@ public IssuePageResponse getAPage(int page, IssueFilter filter) {
List<IssueDto> issueDtos = new ArrayList<>();

for (Issue issue : issueList) {
MemberDto writer = getWriter(members, issue);
MemberDto assignee = getAssignee(members, issue);
MemberDetail writer = getWriter(members, issue);
MemberDetail assignee = getAssignee(members, issue);
Milestone milestone = getMilestone(milestones, issue);
List<LabelSummary> labelList = getLabelList(labels, issue);

Expand Down Expand Up @@ -73,7 +73,7 @@ private List<LabelSummary> getLabelList(Map<Long, LabelSummary> labels, Issue is
.collect(Collectors.toList());
}

private MemberDto getWriter(Map<Long, MemberDto> members, Issue issue) {
private MemberDetail getWriter(Map<Long, MemberDetail> members, Issue issue) {
return members.get(issue.getWriter().getId());
}

Expand All @@ -85,8 +85,8 @@ private Milestone getMilestone(Map<Long, Milestone> milestones, Issue issue) {
return milestone;
}

private MemberDto getAssignee(Map<Long, MemberDto> members, Issue issue) {
MemberDto assignee = null;
private MemberDetail getAssignee(Map<Long, MemberDetail> members, Issue issue) {
MemberDetail assignee = null;
if (issue.getAssignee() != null) {
assignee = members.get(issue.getAssignee().getId());
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.team6.issue_tracker.global.auth.controller;

import com.team6.issue_tracker.domain.member.domain.Member;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import com.team6.issue_tracker.domain.member.service.MemberProvider;
import com.team6.issue_tracker.domain.member.service.MemberService;
import com.team6.issue_tracker.global.auth.config.GithubOAuthPropertiesProd;
Expand All @@ -16,6 +17,8 @@
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.security.auth.login.LoginException;

@Slf4j
@RestController
@RequiredArgsConstructor
Expand All @@ -32,7 +35,7 @@ public class GithubLoginController {
private final JwtService jwtService;

@GetMapping("/oauth/result")
public ResponseEntity<?> loginViaGithub(String code, String env) {
public ResponseEntity<?> loginViaGithub(String code, String env) throws LoginException {
log.info("[OAuth called]");
log.info("code = {} env = {}", code, env);
GithubAccessTokenRequest githubAccessTokenRequest = null;
Expand All @@ -48,10 +51,10 @@ public ResponseEntity<?> loginViaGithub(String code, String env) {

// 맴버 등록 및 업데이트
Member createdMember = memberProvider.toMemberEntity(githubUser, githubAccessToken);
memberService.join(createdMember);
Member member = memberService.join(createdMember);

//토큰 jwt 처리
String jwtToken = jwtService.createToken(githubUser);
String jwtToken = jwtService.createToken(MemberDetail.from(member));
// header, body에 토큰 넣고 반환
return jwtService.createResponse(jwtToken);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import com.team6.issue_tracker.global.auth.domain.GithubUser;
import io.jsonwebtoken.*;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -26,12 +27,12 @@ public class JwtService {
private String secret;
private static final long JWT_TOKEN_VALIDITY = 86400;

public String createToken(GithubUser githubUser) {
public String createToken(MemberDetail user) {
return Jwts.builder()
.setSubject("github_login_member")
.setHeaderParam("typ", "JWT")
.setExpiration(new Date(System.currentTimeMillis() + JWT_TOKEN_VALIDITY * 1000))
.claim("userprofile", githubUser)
.claim("userprofile", user)
.signWith(SignatureAlgorithm.HS256, secret)
.compact();
}
Expand Down

0 comments on commit 9083563

Please sign in to comment.