default 응답 처리

This commit is contained in:
현성필
2023-05-08 14:45:07 +09:00
parent 488a832d27
commit 6ffb74cc2d
2 changed files with 14 additions and 12 deletions
@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Controller
public class MockApiController {
@@ -73,8 +74,14 @@ public class MockApiController {
}
private MockResponse findMatchingResponse(MockRoute mockRoute, MockRequest mockRequest, Map<String, String> pathVariables) {
for (MockResponse response : mockRoute.getResponses()) {
MockResponse defaultResponse = mockRoute.getResponses().stream().filter(MockResponse::isDefaultResponse).findFirst().orElse(null);
List<MockResponse> responses = mockRoute.getResponses().stream().filter(response -> !response.isDefaultResponse()).collect(Collectors.toList());
if(defaultResponse!=null){
responses.add(defaultResponse);
}
for (MockResponse response : responses) {
if (response.getConditions() == null || isRequestMatching(response.getConditions(), mockRequest, pathVariables)) {
return response;
}
@@ -114,11 +114,12 @@
<!-- </div>-->
<!-- </div>-->
<div class="row mt-1">
<div class="col-md">
<div class="col-md condition">
<div class="card">
<div class="card-header">
<div class="d-flex justify-content-between">
<span>조건 항목</span>
<button type="button" class="btn btn-secondary btn-sm btn_remove_case">제거</button>
</div>
</div>
<div class="card-body">
@@ -245,13 +246,11 @@
controller.addResponse();
});
$('#responseTabTitle').on('click', 'button', function () {
$('#responseTabContent').on('click', 'button', function () {
if ($(this).hasClass('btn_remove_case')) {
controller.removeResponse($(this).attr("data-id"));
}
});
$('#responseTabContent').on('click', 'button', function () {
if ($(this).hasClass('btn_add_condition')) {
controller.addResponseCondition($(this).attr("data-id"));
}
@@ -316,17 +315,11 @@
.attr('role', 'tab')
.attr('aria-controls', 'response_tab_' + i)
.attr('aria-selected', 'false')
.text(model.responses[i].defaultResponse?'기본 응답':('조건 ' + (i + 1)));
// let minusButton = $('<button>').attr('class', 'btn btn-sm btn_remove_case')
// .attr('type', 'button')
// .attr('data-id', i)
// .html('<i class="fa fa-minus-circle"></i>');
.text(model.responses[i].defaultResponse?'기본 응답':('조건 ' + i));
let li = $('<li>').attr('class', 'nav-item')
.attr('role','presentation')
.append(tabButton);
// .append(minusButton);
$('#responseTabTitle').append(li);
@@ -336,6 +329,8 @@
nodeCopy.attr('class', 'tab-pane fade ' + (model.responses[i].defaultResponse? 'show active' : ''));
if (model.responses[i].defaultResponse) {
nodeCopy.find('.condition_name').text('기본 응답');
nodeCopy.find('.condition').attr('class', 'condition')
nodeCopy.find('.condition').attr('style', 'visibility: hidden; height: 0; width:0;')
}else {
nodeCopy.find('.condition_name').text('조건 ' + (i + 1));
}