Socket Client UI 기본 골격 작성

This commit is contained in:
현성필
2024-04-17 22:03:02 +09:00
parent 95924af31a
commit 7d97628d38
27 changed files with 2244 additions and 570 deletions
@@ -3,40 +3,73 @@ package com.eactive.testmaster.client.mapper;
import com.eactive.testmaster.client.dto.ApiCollectionDTO;
import com.eactive.testmaster.client.dto.ApiRequestDTO;
import com.eactive.testmaster.client.entity.ApiCollection;
import com.eactive.testmaster.client.entity.ApiLayout;
import com.eactive.testmaster.client.entity.ApiLayoutItem;
import com.eactive.testmaster.client.entity.ApiRequestInfo;
import com.eactive.testmaster.client.repository.ApiLayoutRepository;
import com.eactive.testmaster.client.repository.ApiRequestRepository;
import com.eactive.testmaster.common.mapper.CommonMapper;
import com.eactive.testmaster.server.mapper.ServerMapper;
import java.util.Comparator;
import java.util.List;
import org.mapstruct.AfterMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget;
import org.mapstruct.ReportingPolicy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
@Mapper(componentModel = "spring",
uses = {CommonMapper.class, ServerMapper.class},
unmappedTargetPolicy = ReportingPolicy.IGNORE)
uses = {CommonMapper.class, ServerMapper.class},
unmappedTargetPolicy = ReportingPolicy.IGNORE)
@Component
public abstract class ApiRequestMapper {
@Autowired
private ApiRequestRepository apiRequestRepository;
@Autowired
private ApiLayoutRepository apiLayoutRepository;
@Autowired
private ApiLayoutMapper apiLayoutMapper;
public abstract ApiCollection map(ApiCollectionDTO dto);
public abstract ApiRequestInfo map(ApiRequestDTO dto);
@Mapping(target = "layout", ignore = true)
public abstract ApiRequestDTO map(ApiRequestInfo entity);
public String mapId(ApiRequestInfo entity) {
if (entity == null) {
return null;
}
return entity.getId();
}
public ApiRequestInfo map(String id) {
if(id == null) {
if (id == null) {
return null;
}
return apiRequestRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("No ApiRequest found for ID: " + id));
}
@AfterMapping
public void handleTypeSpecificMapping(ApiRequestInfo entity, @MappingTarget ApiRequestDTO dto) {
if ("TCP".equals(entity.getType())) {
ApiLayout layout = apiLayoutRepository.findFirstByApiRequestInfo(entity);
if (layout!=null) {
layout.getLayoutItems().sort(Comparator.comparingInt(ApiLayoutItem::getLoutItemSerno));
dto.setLayout(apiLayoutMapper.map(layout));
}
}
}
public abstract List<ApiRequestInfo> mapApis(List<ApiRequestDTO> apis);
public abstract List<ApiCollectionDTO> mapCollections(List<ApiCollection> apis);