Skip to content

Commit

Permalink
Merge pull request #299 from codesquad-members-2023-team6/dev
Browse files Browse the repository at this point in the history
Be: API 디버깅, Global Exception Handler 초안 구현
  • Loading branch information
new-pow committed Jun 1, 2023
2 parents 2a771f3 + b62ddbc commit e64bcab
Show file tree
Hide file tree
Showing 18 changed files with 58 additions and 68 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package com.team6.issue_tracker.domain.comment.dto;

import com.team6.issue_tracker.domain.member.dto.MemberDetail;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Data
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class CreateCommentRequest {
private String contents;
private MemberDetail writer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public ResponseEntity<ResponseMessage<Void>> postNewIssue(@RequestBody CreateIss
@PatchMapping("/issue")
public ResponseEntity<ResponseMessage<Void>> updateIssuesStatus(UpdateIssueListStatusRequest request) {
//TODO 유효성 검사
log.debug(request.toString());
issueUpdateService.updateIssueListStatus(request.getIssueIdx(), request.getStatus());
return ResponseMessage.of(HttpStatus.OK, "Issue status updated successfully", null);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package com.team6.issue_tracker.domain.issue.domain;

import com.team6.issue_tracker.domain.label.domain.Label;
import lombok.Value;
import org.springframework.data.jdbc.core.mapping.AggregateReference;

import javax.validation.constraints.NotNull;

@Value
public class Labeling {
AggregateReference<Label, @NotNull Long> labelIdx;

public Labeling(Long labelIdx) {
this.labelIdx = AggregateReference.to(labelIdx);
public Labeling(AggregateReference<Label, @NotNull Long> labelIdx) {
this.labelIdx = labelIdx;
}

public Long getLabelIdx() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public Issue toIssue() {

private List<Labeling> getLabelingMap (List<LabelSummary> labels) {
List<Labeling> labelings= new ArrayList<>();
labels.stream().map(e -> new Labeling(e.getLabelIdx()))
labels.stream().map(e -> new Labeling(AggregateReference.to(e.getLabelIdx())))
.forEach(labelings::add);
return labelings;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ private AggregateReference<Milestone, Long> nullableMilestone(MilestoneDetail mi

private List<Labeling> getLabelOnIssue(List<LabelSummary> labelList) {
List<Labeling> labelingMap = new ArrayList<>();
labelList.forEach(l -> labelingMap.add(new Labeling(l.getLabelIdx())));
labelList.forEach(l -> labelingMap.add(new Labeling(AggregateReference.to(l.getLabelIdx()))));
return labelingMap;
}

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

import com.team6.issue_tracker.domain.model.Status;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.*;

import java.util.List;

@Data
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class UpdateIssueListStatusRequest {
List<Long> issueIdx;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@
import com.team6.issue_tracker.domain.issue.domain.Issue;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jdbc.core.mapping.AggregateReference;
import org.springframework.data.jdbc.repository.query.Modifying;
import org.springframework.data.jdbc.repository.query.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Repository;

import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import com.team6.issue_tracker.domain.comment.service.CommentService;
import com.team6.issue_tracker.domain.comment.dto.CommentDto;
import com.team6.issue_tracker.domain.issue.domain.Issue;
import com.team6.issue_tracker.domain.issue.domain.Labeling;
import com.team6.issue_tracker.domain.label.domain.Label;
import com.team6.issue_tracker.domain.milestone.dto.MilestoneDetail;
import com.team6.issue_tracker.domain.model.Status;
import com.team6.issue_tracker.domain.page.dto.IssueFilter;
Expand All @@ -19,6 +21,7 @@
import org.springframework.stereotype.Service;

import java.util.*;
import java.util.stream.Collectors;

@Service
@RequiredArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@
@Repository
public interface LabelRepository extends CrudRepository<Label, Long> {
Iterable<Label> findAllByIsDeletedFalse();
Iterable<Label> findAllByLabelIdxInAndAndIsDeleted(List<Long> labelIdx, boolean isDeleted);
Iterable<Label> findAllByLabelIdxInAndIsDeleted(List<Long> labelIdx, boolean isDeleted);
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public Map<Long, LabelSummary> getAllLabelSummaries() {
}

public Iterable<Label> findAllById(Collection<Labeling> values) {
return labelRepository.findAllByLabelIdxInAndAndIsDeleted(values.stream()
return labelRepository.findAllByLabelIdxInAndIsDeleted(values.stream()
.map(Labeling::getLabelIdx)
.collect(Collectors.toList()), false);
}
Expand Down

This file was deleted.

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

import com.team6.issue_tracker.domain.member.domain.Member;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Data
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class MemberDetail {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,21 @@
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.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;

@Service
public class MemberService {
private final MemberRepository memberRepository;
private static final Integer PAGE_SIZE = 20;

public MemberService(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}

public Member join(Member member) throws LoginException {
public Member join(Member member) {
if (!memberRepository.existsById(member.getId())) {
return memberRepository.save(member);
}
Expand All @@ -47,10 +42,4 @@ public Map<Long, Member> findMembers(Set<Long> members) {
return memberMap;
}

public Page<Member> getAllMemberPage(int page) {
Pageable pageRequest = PageRequest.of(page, PAGE_SIZE);
// return memberRepository.findAll(pageRequest);
return (Page<Member>) memberRepository.findAll();
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.team6.issue_tracker.domain.milestone.domain;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
Expand All @@ -27,7 +28,7 @@ public class ImageHostController {
description = "사용자는 이미지를 업로드할 수 있다."
)
@PostMapping(value = "/resource", consumes = "multipart/form-data")
public ResponseEntity<ResponseMessage<FileUploadResult>> testUp(@RequestPart MultipartFile files) throws IOException {
public ResponseEntity<ResponseMessage<FileUploadResult>> testUp(@RequestParam MultipartFile files) {
FileUploadResult fileUploadResult = imageHostService.upload(files, Directory.ISSUE);
return ResponseMessage.of(HttpStatus.OK, "Image uploaded successfully", fileUploadResult);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,31 @@
import com.team6.issue_tracker.domain.page.exception.NoPageSearchElementException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import java.util.HashMap;
import java.util.Map;

@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandler {

@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(value = NoPageSearchElementException.class)
public ResponseErrorFormat handleBadRequestException (NoPageSearchElementException e) {
public ResponseError handleBadRequestException (NoPageSearchElementException e) {
log.error(e.getMessage());
return ResponseErrorFormat.of(e, e.getMessage());
return ResponseError.of(e, e.getMessage());
}


@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(Exception.class)
public ResponseError handGlobalException(Exception e) {
log.error(e.getMessage());
return ResponseError.of(e, e.getMessage());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.team6.issue_tracker.global.exception;

import lombok.Getter;

@Getter
public class ResponseError {
private String error;
private String message;

private ResponseError(Exception error, String message) {
this.error = error.toString();
this.message = message;
}

public static ResponseError of(Exception error, String message) {
return new ResponseError(error, message);
}
}

This file was deleted.

0 comments on commit e64bcab

Please sign in to comment.