Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
import com.Dodutch_Server.domain.trip.entity.TripMember;
import com.Dodutch_Server.domain.trip.repository.TripMemberRepository;
import com.Dodutch_Server.domain.trip.repository.TripRepository;
import lombok.Data;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.springframework.data.domain.Sort;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

Expand All @@ -37,7 +37,7 @@ private boolean isValidTrip(Long tripId) {
public ResponseEntity<?> getAllDutchList() {
Long memberId = SecurityUtil.getCurrentUserId();

List<Dutch> dutchList = dutchRepository.findByPayerIdOrPayeeId(memberId, memberId);
List<Dutch> dutchList = dutchRepository.findByPayerIdOrPayeeIdOrderByCreatedAtDesc(memberId, memberId);

List<DutchResponseDTO> responseDTOs = dutchList.stream()
.map(DutchResponseDTO::fromEntity)
Expand Down Expand Up @@ -160,22 +160,46 @@ public ApiResponse(boolean isSuccess, String code, String message, T data) {
@Setter
public static class DutchResponseDTO {
private Long id;
private Long payerId;
private Long payeeId;
private PayerInfo payer;
private PayeeInfo payee;
private Integer perCost;
private Boolean isCompleted;

@Data
public static class PayerInfo {
private Long payerId;
private String payerNickName;
}

@Data
public static class PayeeInfo {
private Long payeeId;
private String payeeNickName;
}

public static DutchResponseDTO fromEntity(Dutch dutch) {
DutchResponseDTO dto = new DutchResponseDTO();
dto.setId(dutch.getId());
dto.setPayerId(dutch.getPayer() != null ? dutch.getPayer().getId() : null);
dto.setPayeeId(dutch.getPayee() != null ? dutch.getPayee().getId() : null);
dto.setPerCost(dutch.getPerCost());
dto.setIsCompleted(dutch.getIsCompleted());

// Payer 정보
PayerInfo payerInfo = new PayerInfo();
payerInfo.setPayerId(dutch.getPayer().getId());
payerInfo.setPayerNickName(dutch.getPayer().getNickName());
dto.setPayer(payerInfo);

// Payee 정보
PayeeInfo payeeInfo = new PayeeInfo();
payeeInfo.setPayeeId(dutch.getPayee().getId());
payeeInfo.setPayeeNickName(dutch.getPayee().getNickName());
dto.setPayee(payeeInfo);

return dto;
}
}


@Getter
@Setter
public static class DutchUpdateRequest{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ public interface DutchRepository extends JpaRepository<Dutch, Long> {
Optional<Dutch> findByTripIdAndId(Long tripId, Long id);
boolean existsByTripIdAndPayerIdAndPayeeIdAndPerCost(Long tripId, Long payerId, Long payeeId, Integer perCost);
List<Dutch> findByPayerIdOrPayeeId(Long payerId, Long payeeId);
List<Dutch> findByPayerIdOrPayeeIdOrderByCreatedAtDesc(Long payerId, Long payeeId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ public class CorsConfig implements WebMvcConfigurer {
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:3000")
.allowedOrigins("https://dodutch.vercel.app")
.allowedOrigins("http://dodutch.vercel.app")
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS","PATCH")
.allowedHeaders("*")
.allowCredentials(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.cors(corsCustomizer -> corsCustomizer.configurationSource(request -> {
CorsConfiguration config = new CorsConfiguration();
config.setAllowedOrigins(Collections.singletonList("http://localhost:3000")); // 허용할 도메인
config.setAllowedOrigins(Collections.singletonList("https://dodutch.vercel.app")); // 허용할 도메인
config.setAllowedOrigins(Collections.singletonList("http://dodutch.vercel.app")); // 허용할 도메인
config.setAllowedMethods(Collections.singletonList("*")); // 모든 메서드 허용
config.setAllowCredentials(true); // 인증 정보 허용
config.setAllowedHeaders(Collections.singletonList("*")); // 모든 헤더 허용
Expand Down
Loading