Files
elink-test-master/src/main/java/com/eactive/httpmockserver/api/mapper/MockRouteMapper.java
T
현성필 c47320f56c .
2023-05-12 11:47:09 +09:00

73 lines
2.5 KiB
Java

package com.eactive.httpmockserver.api.mapper;
import com.eactive.httpmockserver.api.dto.MockHeaderDTO;
import com.eactive.httpmockserver.api.dto.MockResponseDTO;
import com.eactive.httpmockserver.api.dto.MockRouteDTO;
import com.eactive.httpmockserver.api.entity.MockResponse;
import com.eactive.httpmockserver.api.entity.MockRoute;
import com.eactive.httpmockserver.common.mapper.CommonMapper;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import org.mapstruct.ReportingPolicy;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Mapper(componentModel = "spring",
uses = {CommonMapper.class},
unmappedTargetPolicy = ReportingPolicy.IGNORE)
@Component
public abstract class MockRouteMapper {
public abstract MockRoute map(MockRouteDTO dto);
public abstract MockRouteDTO map(MockRoute entity);
@Mapping(target = "headers", source = "headers", qualifiedByName = "mapHeadersToMap")
@Mapping(target ="defaultResponse", source = "defaultResponse", qualifiedByName = "mapEntityDefaultResponse")
public abstract MockResponse map(MockResponseDTO dto);
@Mapping(target = "headers", source = "headers", qualifiedByName = "mapHeadersToList")
@Mapping(target ="defaultResponse", source = "defaultResponse", qualifiedByName = "mapDTODefaultResponse")
public abstract MockResponseDTO map(MockResponse entity);
@Named("mapDTODefaultResponse")
public String map(boolean value) {
return value ? "true" : "false";
}
@Named("mapEntityDefaultResponse")
public boolean map(String value) {
if (value == null) return false;
return value.equals("true");
}
@Named("mapHeadersToList")
public List<MockHeaderDTO> mapHeadersToList(Map<String, String> headers) {
List<MockHeaderDTO> list = new ArrayList<>();
if (headers != null) {
headers.forEach((key, value) -> {
MockHeaderDTO header = new MockHeaderDTO();
header.setKey(key);
header.setValue(value);
list.add(header);
});
}
return list;
}
@Named("mapHeadersToMap")
public Map<String, String> mapHeadersToMap(List<MockHeaderDTO> headers) {
Map<String, String> map = new HashMap<>();
if (headers != null) {
headers.forEach(header -> {
map.put(header.getKey(), header.getValue());
});
}
return map;
}
}