Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
.requestMatchers("/member/sign-up", "/member/sign-in").permitAll()
.requestMatchers("/member/**").permitAll()
// Event 관련 접근
.requestMatchers("/event/", "/event/{eventId}", "/event/member/{memberId}", "/event/member/{memberId}/event/{eventId}", "/event/member/{memberId}/date/{date}").permitAll()
.requestMatchers("/event/", "/event/{eventId}", "/event/member/{memberId}", "/event/member/{memberId}/event/{eventId}", "/event/member/{memberId}/date/{date}", "/event/multipleEvents/{memberId}/{generatorId}").permitAll()
// Generator 관련 접근
.requestMatchers("/generator/", "/generator/{generatorId}").permitAll()
// Bookmark 관련 접근
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,15 @@ public static EventResponseDTO.CreateEventResultDTO toCreateResultDTO(Event even
return EventResponseDTO.CreateEventResultDTO.builder()
.eventId(event.getEventId())
.memberId(event.getMember().getMemberId())
.generatorId(event.getGenerator() != null ? event.getGenerator().getGeneratorId() : null) // generatorId 추가
.eventTitle(event.getEventTitle())
.eventBody(event.getEventBody())
.startDate(event.getStartDate())
.endDate(event.getEndDate())
.build();
}


public static EventResponseDTO.UpdateEventResultDTO UpdateEventResultDTO(Event event) {
return EventResponseDTO.UpdateEventResultDTO.builder()
.eventId(event.getEventId())
Expand All @@ -43,6 +45,7 @@ public static EventResponseDTO.UpdateEventResultDTO UpdateEventResultDTO(Event e
public static EventResponseDTO.MemberEventPreviewDTO toMemberEventPreviewDTO(Event event) {
return EventResponseDTO.MemberEventPreviewDTO.builder()
.memberId(event.getMember().getMemberId())
.generatorId(event.getGenerator() != null ? event.getGenerator().getGeneratorId() : null) // generatorId 추가
.eventId(event.getEventId())
.eventTitle(event.getEventTitle())
.eventBody(event.getEventBody())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ public interface EventCommandService {
Event createEvent(Long memberId, EventRequestDTO.CreateEventRequestDTO request);
Event updateEvent(Long memberId, Long eventId, EventRequestDTO.UpdateEventDTO request);
void deleteEvent(Long memberId, Long eventId);
Event createEventWithGenerator(Long memberId, Long generatorId, EventRequestDTO.CreateEventRequestDTO request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

import Capstone.AutoScheduler.global.converter.EventConverter;
import Capstone.AutoScheduler.global.domain.entity.Event;
import Capstone.AutoScheduler.global.domain.entity.Generator;
import Capstone.AutoScheduler.global.domain.entity.Member;
import Capstone.AutoScheduler.global.repository.EventRepository;
import Capstone.AutoScheduler.global.repository.MemberRepository;
import Capstone.AutoScheduler.global.repository.GeneratorRepository;
import Capstone.AutoScheduler.global.web.dto.Event.EventRequestDTO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -19,36 +21,67 @@ public class EventCommandServiceImpl implements EventCommandService {

private final MemberRepository memberRepository;
private final EventRepository eventRepository;
private final GeneratorRepository generatorRepository;

@Override
public Event createEvent(Long memberId, EventRequestDTO.CreateEventRequestDTO request) {
Member member = findMemberById(memberId);

Event newEvent = EventConverter.toEvent(request);
Member getMember = memberRepository.findById(memberId)
.orElseThrow(() -> new IllegalArgumentException("해당 멤버가 존재하지 않습니다."));
newEvent.setMember(getMember);
newEvent.setMember(member);

Event savedEvent = eventRepository.save(newEvent);
log.info("Event created: {}", savedEvent);
return savedEvent;
}

@Override
public Event updateEvent(Long memberId, Long eventId, EventRequestDTO.UpdateEventDTO request) {
Member getMember = memberRepository.findById(memberId)
.orElseThrow(() -> new IllegalArgumentException("해당 멤버가 존재하지 않습니다."));
Member member = findMemberById(memberId);

Event updateEvent = eventRepository.findById(eventId).get();
updateEvent.update(request);
return updateEvent;
Event event = eventRepository.findById(eventId)
.orElseThrow(() -> new IllegalArgumentException("Event not found. ID: " + eventId));

event.update(request);
log.info("Event updated: {}", event);
return event;
}

@Override
public void deleteEvent(Long memberId, Long eventId) {
Member getMember = memberRepository.findById(memberId)
.orElseThrow(() -> new IllegalArgumentException("해당 멤버가 존재하지 않습니다."));
Member member = findMemberById(memberId);

Event event = eventRepository.findById(eventId)
.orElseThrow(() -> new IllegalArgumentException("Event not found. ID: " + eventId));

eventRepository.delete(event);
log.info("Event deleted: {}", event);
}

@Override
public Event createEventWithGenerator(Long memberId, Long generatorId, EventRequestDTO.CreateEventRequestDTO request) {
Member member = findMemberById(memberId);
Generator generator = findGeneratorById(generatorId);

Event newEvent = EventConverter.toEvent(request);
newEvent.setMember(member);
newEvent.setGenerator(generator);

Event deleteEvent = eventRepository.findById(eventId).get();
eventRepository.delete(deleteEvent);
Event savedEvent = eventRepository.save(newEvent);
log.info("Event created with generator: {}", savedEvent);
return savedEvent;
}


private Member findMemberById(Long memberId) {
return memberRepository.findById(memberId)
.orElseThrow(() -> new IllegalArgumentException("Member not found. ID: " + memberId));
}

private Generator findGeneratorById(Long generatorId) {
return generatorRepository.findById(generatorId)
.orElseThrow(() -> new IllegalArgumentException("Generator not found. ID: " + generatorId));
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -79,28 +79,19 @@ public ApiResponse<EventResponseDTO.MemberEventPreviewDTO> findEventByMemberAndE
return ApiResponse.onSuccess(SuccessStatus.EVENT_OK, EventConverter.toMemberEventPreviewDTO(event));
}

// @PostMapping("/event/multipleEvents/{memberId}/{generatorId}")
// @Operation(summary = "자동 생성된 모든 일정 저장하기", description = "일정 생성기에서 자동 생성된 개별 일정을 모두 저장합니다.")
// public ApiResponse<List<EventResponseDTO.CreateEventResultDTO>> createIndividualEventsFromList(
// @PathVariable Long memberId,
// @PathVariable Long generatorId,
// @RequestBody List<EventRequestDTO.CreateEventRequestDTO> multiEventRequests) {
//
// // 저장된 이벤트 결과를 담을 리스트
// List<EventResponseDTO.CreateEventResultDTO> createdEvents = new ArrayList<>();
//
// // 요청된 각 일정 데이터를 처리
// for (EventRequestDTO.CreateEventRequestDTO request : multiEventRequests) {
// // EventCommandService를 통해 개별 이벤트 생성
// Event newEvent = eventCommandService.createIndividualEventFromList(memberId, generatorId, request);
//
// // 생성된 이벤트를 DTO로 변환하여 결과 리스트에 추가
// createdEvents.add(EventConverter.toCreateResultDTO(newEvent));
// }
//
// // 성공 응답 반환
// return ApiResponse.onSuccess(SuccessStatus.EVENT_OK, createdEvents);
// }
// 자동 생성된 모든 일정 저장하기
@PostMapping("/multipleEvents/{memberId}/{generatorId}")
@Operation(summary = "자동 생성된 모든 일정 저장하기", description = "일정 생성기에서 자동 생성된 개별 일정을 모두 저장합니다.")
public ApiResponse<List<EventResponseDTO.CreateEventResultDTO>> createMultipleEvents(@RequestParam Long memberId, @RequestParam Long generatorId,
@RequestBody EventRequestDTO.CreateMultipleEventsRequestDTO request) {
List<EventResponseDTO.CreateEventResultDTO> createdEvents = new ArrayList<>();

for (EventRequestDTO.CreateEventRequestDTO eventRequest : request.getEvents()) {
Event newEvent = eventCommandService.createEventWithGenerator(memberId, generatorId, eventRequest);
createdEvents.add(EventConverter.toCreateResultDTO(newEvent));
}
return ApiResponse.onSuccess(SuccessStatus.EVENT_OK, createdEvents);
}



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.*;

import java.time.LocalDateTime;
import java.util.List;

public class EventRequestDTO {

Expand Down Expand Up @@ -30,4 +31,14 @@ public static class UpdateEventDTO {
private LocalDateTime endDate;
}

@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class CreateMultipleEventsRequestDTO {
private List<CreateEventRequestDTO> events; // 여러 이벤트 생성 요청
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public class EventResponseDTO {
public static class CreateEventResultDTO {
Long eventId;
Long memberId;
Long generatorId;
String eventTitle;
String eventBody;
LocalDateTime startDate;
Expand All @@ -42,6 +43,7 @@ public static class UpdateEventResultDTO {
@AllArgsConstructor
public static class MemberEventPreviewDTO {
Long memberId;
Long generatorId;
Long eventId;
String eventTitle;
String eventBody;
Expand Down
Loading