[UPDATE] 변경된 요청 클래스 적용 (WorkFlowRequest → ProjectBaseSearchRequest), DataGroup 및 AuthController API 설명 수정, DataGroupEntity에 projectId 필드 추가

main
bjkim 9 months ago
parent 9bf0373779
commit aa10b105ef

@ -38,7 +38,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
@Tag(name = "Authentication", description = "User Authentication APIs")
@Tag(name = "권한", description = "유저 권한 API")
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
@RequestMapping("/api/auth")

@ -5,10 +5,9 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.tags.Tag;
import kr.re.etri.autoflow.entity.DataGroupEntity;
import kr.re.etri.autoflow.payload.request.BaseSearchRequest;
import kr.re.etri.autoflow.payload.request.ProjectBaseSearchRequest;
import kr.re.etri.autoflow.payload.request.ProjectRequest;
import kr.re.etri.autoflow.service.DataGroupService;
import kr.re.etri.autoflow.service.ProjectService;
import lombok.RequiredArgsConstructor;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.data.domain.Page;
@ -17,7 +16,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@Tag(name = "데이터 그룹", description = "Project CRUD 기능 제공")
@Tag(name = "데이터 그룹", description = "데이터 그룹 CRUD 기능 제공")
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
@RequestMapping("/api/datagroup")
@ -26,16 +25,16 @@ public class DataGroupController {
private final DataGroupService dataGroupService;
@Operation(summary = "전체 프로젝트 목록 조회")
@Operation(summary = "전체 데이터 그룹 목록 조회")
@GetMapping
public ResponseEntity<List<DataGroupEntity>> getAllProjects() {
return ResponseEntity.ok(dataGroupService.findAll());
}
@Operation(summary = "ID로 프로젝트 조회")
@Operation(summary = "ID로 데이터 그룹 조회")
@GetMapping("/{id}")
public ResponseEntity<DataGroupEntity> getProjectById(
@Parameter(description = "조회할 프로젝트 ID", required = true, in = ParameterIn.PATH)
@Parameter(description = "조회할 데이터 그룹 ID", required = true, in = ParameterIn.PATH)
@PathVariable("id") Long id) {
return dataGroupService.findById(id)
@ -43,15 +42,15 @@ public class DataGroupController {
.orElse(ResponseEntity.notFound().build());
}
@Operation(summary = "검색 및 페이지네이션 프로젝트 목록 조회")
@Operation(summary = "검색 및 페이지네이션 데이터 그룹 목록 조회")
@GetMapping("/search")
public ResponseEntity<Page<DataGroupEntity>> searchProjects(
@ParameterObject @ModelAttribute BaseSearchRequest request) {
@ParameterObject @ModelAttribute ProjectBaseSearchRequest request) {
Page<DataGroupEntity> page = dataGroupService.search(request);
return ResponseEntity.ok(page);
}
@Operation(summary = "프로젝트 생성")
@Operation(summary = "데이터 그룹 생성")
@PostMapping
public ResponseEntity<?> createProject(@RequestBody DataGroupEntity project) {
try {
@ -62,10 +61,10 @@ public class DataGroupController {
}
}
@Operation(summary = "프로젝트 수정")
@Operation(summary = "데이터 그룹 수정")
@PutMapping("/{id}")
public ResponseEntity<DataGroupEntity> updateProject(
@Parameter(description = "수정할 프로젝트 ID", required = true, in = ParameterIn.PATH)
@Parameter(description = "수정할 데이터 그룹 ID", required = true, in = ParameterIn.PATH)
@PathVariable("id") Long id,
@RequestBody ProjectRequest dto) {
@ -74,10 +73,10 @@ public class DataGroupController {
.orElse(ResponseEntity.notFound().build());
}
@Operation(summary = "프로젝트 삭제")
@Operation(summary = "데이터 그룹 삭제")
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteProject(
@Parameter(description = "삭제할 프로젝트 ID", required = true, in = ParameterIn.PATH)
@Parameter(description = "삭제할 데이터 그룹 ID", required = true, in = ParameterIn.PATH)
@PathVariable("id") Long id) {
if (dataGroupService.delete(id)) {
return ResponseEntity.noContent().build();

@ -25,7 +25,7 @@ import java.util.*;
@RequestMapping("/api/minio")
@RequiredArgsConstructor
@Slf4j
@Tag(name = "MinIO Controller", description = "MinIO 버킷/파일 관리 API")
@Tag(name = "MinIO 업로드 관련", description = "MinIO 버킷/파일 관리 API")
public class MinIOController {
private final MinioClient minioClient;
private final DatasetAttachmentRepository datasetAttachmentRepository;

@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import kr.re.etri.autoflow.entity.WorkflowEntity;
import kr.re.etri.autoflow.payload.request.WorkFlowRequest;
import kr.re.etri.autoflow.payload.request.ProjectBaseSearchRequest;
import kr.re.etri.autoflow.service.WorkFlowService;
import lombok.RequiredArgsConstructor;
import org.springdoc.core.annotations.ParameterObject;
@ -41,7 +41,7 @@ public class WorkFlowController {
@Operation(summary = "워크플로우 검색 및 페이지네이션 프로젝트 목록 조회")
@GetMapping("/search")
public ResponseEntity<Page<WorkflowEntity>> searchProjects(
@ParameterObject @ModelAttribute WorkFlowRequest request) {
@ParameterObject @ModelAttribute ProjectBaseSearchRequest request) {
Page<WorkflowEntity> page = workflowService.search(request);
return ResponseEntity.ok(page);
}

@ -66,6 +66,10 @@ public class DataGroupEntity {
@Comment("수정 유저 이름")
private String modUserNm;
@Schema(description = "프로젝트 아이디", example = "1", defaultValue = "0")
@Column(nullable = false)
private Long projectId;
@OneToMany
@JoinColumn(name = "refId", referencedColumnName = "id", insertable = false, updatable = false)
private List<DatasetAttachmentEntity> files = new ArrayList<>();

@ -6,7 +6,7 @@ import lombok.Setter;
@Getter
@Setter
public class WorkFlowRequest extends BaseSearchRequest {
public class ProjectBaseSearchRequest extends BaseSearchRequest {
@Schema(description = "프로젝트 ID", example = "1")
private Long projectId;
}

@ -1,14 +1,10 @@
package kr.re.etri.autoflow.service;
import kr.re.etri.autoflow.entity.DataGroupEntity;
import kr.re.etri.autoflow.payload.request.BaseSearchRequest;
import kr.re.etri.autoflow.payload.request.ProjectBaseSearchRequest;
import kr.re.etri.autoflow.payload.request.ProjectRequest;
import kr.re.etri.autoflow.repository.DataGroupRepository;
import kr.re.etri.autoflow.repository.ProjectRepository;
import kr.re.etri.autoflow.repository.UserProjectMapRepository;
import kr.re.etri.autoflow.repository.UserRepository;
import kr.re.etri.autoflow.specification.DataGroupSpecification;
import kr.re.etri.autoflow.specification.ProjectSpecification;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.Page;
@ -44,7 +40,7 @@ public class DataGroupService {
return dataGroupRepository.findById(id);
}
public Page<DataGroupEntity> search(BaseSearchRequest request) {
public Page<DataGroupEntity> search(ProjectBaseSearchRequest request) {
int pageIndex = request.getPage() > 0 ? request.getPage() - 1 : 0;
Pageable pageable = PageRequest.of(
@ -63,9 +59,17 @@ public class DataGroupService {
endDate
);
if (request.getProjectId() != null) {
spec = spec.and((root, query, cb) ->
cb.equal(root.get("projectId"), request.getProjectId())
);
}
return dataGroupRepository.findAll(spec, pageable);
}
private LocalDate parseDate(String dateStr) {
if (dateStr == null || dateStr.isBlank()) return null;
try {

@ -3,7 +3,7 @@ package kr.re.etri.autoflow.service;
import jakarta.transaction.Transactional;
import kr.re.etri.autoflow.entity.WorkflowEntity;
import kr.re.etri.autoflow.payload.request.BaseSearchRequest;
import kr.re.etri.autoflow.payload.request.WorkFlowRequest;
import kr.re.etri.autoflow.payload.request.ProjectBaseSearchRequest;
import kr.re.etri.autoflow.repository.WorkflowRepository;
import kr.re.etri.autoflow.specification.WorkflowSpecification;
import lombok.RequiredArgsConstructor;
@ -58,7 +58,7 @@ public class WorkFlowService {
}
@Transactional
public Page<WorkflowEntity> search(WorkFlowRequest request) {
public Page<WorkflowEntity> search(ProjectBaseSearchRequest request) {
int pageIndex = request.getPage() > 0 ? request.getPage() - 1 : 0;
Pageable pageable = PageRequest.of(

Loading…
Cancel
Save