Skip to content

Commit

Permalink
Merge pull request #105 from WOONGEYA/refactor
Browse files Browse the repository at this point in the history
Refactor
  • Loading branch information
Woongbin06 authored Oct 13, 2024
2 parents 56c500d + 1990a78 commit 6fbe8ff
Show file tree
Hide file tree
Showing 16 changed files with 131 additions and 127 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,28 @@
package com.woongeya.zoing.domain.application.presetation;

import com.woongeya.zoing.domain.application.presetation.dto.request.ApplicationCreateRequest;
import com.woongeya.zoing.domain.application.presetation.dto.response.ApplicationResponseDto;
import com.woongeya.zoing.domain.application.service.*;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import java.util.List;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
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;

import com.woongeya.zoing.domain.application.presetation.dto.request.ApplicationCreateRequest;
import com.woongeya.zoing.domain.application.presetation.dto.response.ApplicationResponse;
import com.woongeya.zoing.domain.application.service.AcceptApplicationService;
import com.woongeya.zoing.domain.application.service.CancelApplicationService;
import com.woongeya.zoing.domain.application.service.CreateApplicationService;
import com.woongeya.zoing.domain.application.service.FindApplicationService;
import com.woongeya.zoing.domain.application.service.FindProjectApplicationService;
import com.woongeya.zoing.domain.application.service.RejectApplicationService;

import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.Valid;
import java.util.List;
import lombok.RequiredArgsConstructor;

@RestController
@RequiredArgsConstructor
Expand Down Expand Up @@ -49,13 +62,13 @@ public void rejectApplication(@PathVariable Long id) {

@GetMapping("/project/{id}")
@Operation(summary = "프로젝트에 신청한 모든 유저 조회")
public ResponseEntity<List<ApplicationResponseDto>> findProjectApplication(@PathVariable Long id) {
public ResponseEntity<List<ApplicationResponse>> findProjectApplication(@PathVariable Long id) {
return ResponseEntity.ok(findProjectApplicationService.execute(id));
}

@GetMapping("/{id}")
@Operation(summary = "신청 하나 조회")
public ResponseEntity<ApplicationResponseDto> findOneApplication(@PathVariable Long id) {
public ResponseEntity<ApplicationResponse> findOneApplication(@PathVariable Long id) {
return ResponseEntity.ok(findApplicationService.execute(id));
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
package com.woongeya.zoing.domain.application.presetation.dto.request;

import lombok.Getter;
import com.woongeya.zoing.domain.application.domain.Application;
import com.woongeya.zoing.domain.application.domain.type.ApplicationState;
import com.woongeya.zoing.domain.project.domain.Project;
import com.woongeya.zoing.domain.user.domain.User;

import jakarta.validation.constraints.NotNull;

@Getter
public class ApplicationCreateRequest {

private String introduce;

@NotNull
private String position;

@NotNull
private String phone;
public record ApplicationCreateRequest (
@NotNull
String position,
@NotNull
String phone,
String introduce
) {
public Application toEntity(User user, Project project) {
return Application.builder()
.userId(user.getId())
.projectId(project.getId())
.introduce(introduce)
.phone(phone)
.state(ApplicationState.PENDING)
.position(position)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.woongeya.zoing.domain.application.presetation.dto.response;

import com.woongeya.zoing.domain.application.domain.Application;
import com.woongeya.zoing.domain.user.domain.User;

import lombok.Builder;

@Builder
public record ApplicationResponse (
Long id,
String introduce,
Long userId,
String userName,
String userImg,
String phone,
String position
) {
public static ApplicationResponse of(Application application, User user) {
return ApplicationResponse.builder()
.id(application.getId())
.introduce(application.getIntroduce())
.userId(user.getId())
.userName(user.getName())
.userImg(user.getImgUrl())
.phone(application.getPhone())
.position(application.getPosition())
.build();
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,7 @@ public void execute(ApplicationCreateRequest request, Long id) {
.ifPresent(application -> { throw new AlreadyApplicationException(); });

Long applicationId = applicationRepository.save(
Application.builder()
.userId(user.getId())
.projectId(project.getId())
.introduce(request.getIntroduce())
.phone(request.getPhone())
.state(ApplicationState.PENDING)
.position(request.getPosition())
.build()
request.toEntity(user, project)
).getId();

notificationRepository.save(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.woongeya.zoing.domain.application.ApplicationFacade;
import com.woongeya.zoing.domain.application.domain.Application;
import com.woongeya.zoing.domain.application.presetation.dto.response.ApplicationResponseDto;
import com.woongeya.zoing.domain.application.presetation.dto.response.ApplicationResponse;
import com.woongeya.zoing.domain.user.UserFacade;
import com.woongeya.zoing.domain.user.domain.User;
import lombok.RequiredArgsConstructor;
Expand All @@ -15,10 +15,10 @@ public class FindApplicationService {
private final ApplicationFacade applicationFacade;
private final UserFacade userFacade;

public ApplicationResponseDto execute(Long id) {
public ApplicationResponse execute(Long id) {
Application application = applicationFacade.getApplication(id);
User user = userFacade.getUserById(application.getUserId());

return new ApplicationResponseDto(application, user);
return ApplicationResponse.of(application, user);
}
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package com.woongeya.zoing.domain.application.service;

import java.util.List;
import java.util.stream.Collectors;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.woongeya.zoing.domain.application.domain.Application;
import com.woongeya.zoing.domain.application.domain.repository.ApplicationRepository;
import com.woongeya.zoing.domain.application.presetation.dto.response.ApplicationResponseDto;
import com.woongeya.zoing.domain.application.presetation.dto.response.ApplicationResponse;
import com.woongeya.zoing.domain.project.domain.Member;
import com.woongeya.zoing.domain.project.domain.repository.CustomMemberRepository;
import com.woongeya.zoing.domain.project.domain.repository.MemberRepository;
import com.woongeya.zoing.domain.project.exception.IsNotWriterException;
import com.woongeya.zoing.domain.project.exception.MemberNotFoundException;
import com.woongeya.zoing.domain.user.UserFacade;
import com.woongeya.zoing.domain.user.domain.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;

@Service
@RequiredArgsConstructor
Expand All @@ -27,7 +27,7 @@ public class FindProjectApplicationService {
private final UserFacade userFacade;

@Transactional(readOnly = true)
public List<ApplicationResponseDto> execute(Long id) {
public List<ApplicationResponse> execute(Long id) {
User user = userFacade.getCurrentUser();
Member member = memberRepository.findByUserIdAndProjectId(user.getId(), id)
.orElseThrow(() -> MemberNotFoundException.EXCEPTION);
Expand All @@ -38,10 +38,7 @@ public List<ApplicationResponseDto> execute(Long id) {

List<Application> applications = applicationRepository.findByProjectId(id);
return applications.stream()
.map(application -> {
User applicationUser = userFacade.getUserById(application.getUserId());
return new ApplicationResponseDto(application, applicationUser);
})
.map(application -> ApplicationResponse.of(application, userFacade.getUserById(application.getUserId())))
.collect(Collectors.toList());
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
package com.woongeya.zoing.domain.auth.presetation.dto.response;

import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class TokenResponse {

private String token;
private String validate;
}
public record TokenResponse (
String token,
String validate
) {}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public boolean isWriter(Long writerId) {
}

public void update(CreateCommentRequest request) {
this.content = request.getContent();
this.content = request.content();
}

public void increaseReCommentCount() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,6 @@ public boolean isWriter(Long id) {
}

public void update(CreateCommentRequest request) {
this.content = request.getContent();
this.content = request.content();
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package com.woongeya.zoing.domain.comment.presetation.dto.request;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import com.woongeya.zoing.domain.comment.domain.Comment;
import com.woongeya.zoing.domain.user.domain.User;

import jakarta.validation.constraints.NotNull;

@Getter
@AllArgsConstructor
@NoArgsConstructor
public class CreateCommentRequest {

public record CreateCommentRequest (
@NotNull
private String content;
String content
) {

public Comment toEntity(Long postId, User user) {
return new Comment(content, postId, user.getId());
}
}
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
package com.woongeya.zoing.domain.comment.presetation.dto.response;

import java.time.LocalDateTime;

import com.woongeya.zoing.domain.comment.domain.Comment;
import com.woongeya.zoing.domain.user.domain.User;
import lombok.Builder;
import lombok.Getter;

import java.time.LocalDateTime;
import lombok.Builder;

@Getter
@Builder
public class CommentResponse {

private Long id;
private String content;
private LocalDateTime createTime;
private Long userId;
private String userNickName;
private String userImg;
private Integer reCommentCount;

public record CommentResponse (
Long id,
String content,
LocalDateTime createTime,
Long userId,
String userNickName,
String userImg,
Integer reCommentCount
) {
public static CommentResponse of(Comment comment, User user) {
return CommentResponse.builder()
.id(comment.getId())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,15 @@

import java.time.LocalDateTime;

@Getter
@Builder
public class ReCommentResponse {

private Long id;
private String content;
private LocalDateTime createTime;
private Long userId;
private String userNickName;
private String userImg;

public record ReCommentResponse (
Long id,
String content,
LocalDateTime createTime,
Long userId,
String userNickName,
String userImg
) {
public static ReCommentResponse of(ReComment reComment, User user) {
return ReCommentResponse.builder()
.id(reComment.getId())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public void execute(Long postId, CreateCommentRequest request) {
User user = userFacade.getCurrentUser();
Post post = postRepository.findById(postId)
.orElseThrow(() -> PostNotFoundException.EXCEPTION);
commentRepository.save(new Comment(request.getContent(), postId, user.getId()));
commentRepository.save(request.toEntity(postId, user));
post.increaseCommentCount();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public void execute(Long id, CreateCommentRequest request) {
Comment comment = commentRepository.findById(id)
.orElseThrow(() -> CommentNotFoundException.EXCEPTION);
reCommentRepository.save(
new ReComment(request.getContent(), id, user.getId())
new ReComment(request.content(), id, user.getId())
);
comment.increaseReCommentCount();
}
Expand Down
Loading

0 comments on commit 6fbe8ff

Please sign in to comment.