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 @@ -27,7 +27,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
// Event 관련 접근
.requestMatchers("/event/", "/event/{eventId}", "/event/member/{memberId}", "/event/member/{memberId}/event/{eventId}", "/event/member/{memberId}/date/{date}").permitAll()
// Generator 관련 접근
.requestMatchers("/generator/").permitAll()
.requestMatchers("/generator/", "/generator/{generatorId}").permitAll()
// Bookmark 관련 접근
.requestMatchers("/bookmark/add/{memberId}/{generatorId}", "/bookmark/delete/{bookmarkId}" ).permitAll()
// Crawling 관련 접근
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
import Capstone.AutoScheduler.global.web.dto.Generator.GeneratorRequestDTO;
import Capstone.AutoScheduler.global.web.dto.Generator.GeneratorResponseDTO;

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

public class GeneratorConverter {

public static Generator toGenerator(GeneratorRequestDTO.CreateGeneratorRequestDTO request) {
Expand All @@ -23,4 +27,33 @@ public static GeneratorResponseDTO.CreateGeneratorResultDTO toCreateResultDTO(Ge
.build();
}

public static GeneratorResponseDTO.GeneratorDTO toGeneratorDTO(Generator generator) {
return GeneratorResponseDTO.GeneratorDTO.builder()
.generatorId(generator.getGeneratorId())
.memberId(generator.getMember().getMemberId())
.sourceId(generator.getSource().getSourceId())
.generatorTitle(generator.getGeneratorTitle())
.generatorDetail(generator.getGeneratorDetail())
.build();
}

public static GeneratorResponseDTO.GeneratorPreviewDTO toGeneratorPreviewDTO(Generator generator) {
return GeneratorResponseDTO.GeneratorPreviewDTO.builder()
.generatorId(generator.getGeneratorId())
.memberId(generator.getMember().getMemberId())
.sourceId(generator.getSource().getSourceId())
.generatorTitle(generator.getGeneratorTitle())
.generatorDetail(generator.getGeneratorDetail())
.build();
}

public static GeneratorResponseDTO.GeneratorPreviewListDTO toGeneratorPreviewListDTO(List<Generator> generatorList) {
List<GeneratorResponseDTO.GeneratorPreviewDTO> generatorPreviewDTOList = IntStream.range(0, generatorList.size())
.mapToObj(i->toGeneratorPreviewDTO(generatorList.get(i)))
.collect(Collectors.toList());
return GeneratorResponseDTO.GeneratorPreviewListDTO.builder()
.generators(generatorPreviewDTOList)
.build();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface GeneratorRepository extends JpaRepository<Generator, Long> {


List<Generator> findAllByOrderByGeneratorIdDesc();
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
package Capstone.AutoScheduler.global.service.GeneratorService;

import Capstone.AutoScheduler.global.domain.entity.Generator;

import java.util.List;

public interface GeneratorQueryService {

Generator findById(Long generatorId);
List<Generator> getGenerators();
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,33 @@
package Capstone.AutoScheduler.global.service.GeneratorService;

public class GeneratorQueryServiceImpl {

import Capstone.AutoScheduler.global.domain.entity.Generator;
import Capstone.AutoScheduler.global.repository.GeneratorRepository;
import jakarta.transaction.Transactional;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
@RequiredArgsConstructor
@Transactional
@Slf4j
@Getter
public class GeneratorQueryServiceImpl implements GeneratorQueryService {

private final GeneratorRepository generatorRepository;

@Override
public Generator findById(Long generatorId) {
Generator generator = generatorRepository.findById(generatorId).get();
return generatorRepository.save(generator);
}

@Override
public List<Generator> getGenerators() {
return generatorRepository.findAllByOrderByGeneratorIdDesc();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,20 @@
import Capstone.AutoScheduler.global.converter.GeneratorConverter;
import Capstone.AutoScheduler.global.domain.entity.Generator;
import Capstone.AutoScheduler.global.service.GeneratorService.GeneratorCommandService;
import Capstone.AutoScheduler.global.service.GeneratorService.GeneratorQueryService;
import Capstone.AutoScheduler.global.service.MemberService.MemberCommandService;
import Capstone.AutoScheduler.global.web.dto.Generator.GeneratorRequestDTO;
import Capstone.AutoScheduler.global.web.dto.Generator.GeneratorResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequiredArgsConstructor
@Validated
Expand All @@ -26,6 +30,7 @@
public class GeneratorController {

private final GeneratorCommandService generatorCommandService;
private final GeneratorQueryService generatorQueryService;
private final MemberCommandService memberCommandService;

// 일정 생성기 저장하기
Expand All @@ -43,4 +48,26 @@ public ApiResponse<GeneratorResponseDTO.CreateGeneratorResultDTO> generatorCreat
);
}

// 특정 일정 생성기 조회
@GetMapping("/{generatorId}")
@Operation(summary = "특정 일정 생성기 조회 API", description = "특정 일정 생성기를 조회합니다. Path variable로 조회할 일정 생성기의 ID를 입력하세요.")
public ApiResponse<GeneratorResponseDTO.GeneratorDTO> findGenerator(@PathVariable Long generatorId) {
Object request;
Generator findGenerator = generatorQueryService.findById(generatorId);
return ApiResponse.onSuccess(
SuccessStatus.GENERATOR_OK,
GeneratorConverter.toGeneratorDTO(findGenerator)
);
}

// 전체 일정 생성기 리스트 조회
@GetMapping("/list")
@Operation(summary = "전체 일정 생성기 리스트 조회 API", description = "전체 일정 생성기 리스트를 조회합니다.")
public ApiResponse<GeneratorResponseDTO.GeneratorPreviewListDTO> findGenerators() {
List<Generator> generators = generatorQueryService.getGenerators();
return ApiResponse.onSuccess(
SuccessStatus.GENERATOR_OK,
GeneratorConverter.toGeneratorPreviewListDTO(generators));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

public class GeneratorResponseDTO {

@Getter
Expand All @@ -18,4 +20,39 @@ public static class CreateGeneratorResultDTO {
String generatorTitle;
String generatorDetail;
}

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class GeneratorDTO {
Long generatorId;
Long memberId;
Long sourceId;
String generatorTitle;
String generatorDetail;
}

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class GeneratorPreviewDTO {
Long generatorId;
Long memberId;
Long sourceId;
String generatorTitle;
String generatorDetail;
}

@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class GeneratorPreviewListDTO {
List<GeneratorPreviewDTO> generators;
}



}