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 javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
@Controller @Controller
public class MockApiController { public class MockApiController {
@@ -73,8 +74,14 @@ public class MockApiController {
} }
private MockResponse findMatchingResponse(MockRoute mockRoute, MockRequest mockRequest, Map<String, String> pathVariables) { 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)) { if (response.getConditions() == null || isRequestMatching(response.getConditions(), mockRequest, pathVariables)) {
return response; return response;
} }
@@ -114,11 +114,12 @@
<!-- </div>--> <!-- </div>-->
<!-- </div>--> <!-- </div>-->
<div class="row mt-1"> <div class="row mt-1">
<div class="col-md"> <div class="col-md condition">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<span>조건 항목</span> <span>조건 항목</span>
<button type="button" class="btn btn-secondary btn-sm btn_remove_case">제거</button>
</div> </div>
</div> </div>
<div class="card-body"> <div class="card-body">
@@ -245,13 +246,11 @@
controller.addResponse(); controller.addResponse();
}); });
$('#responseTabTitle').on('click', 'button', function () { $('#responseTabContent').on('click', 'button', function () {
if ($(this).hasClass('btn_remove_case')) { if ($(this).hasClass('btn_remove_case')) {
controller.removeResponse($(this).attr("data-id")); controller.removeResponse($(this).attr("data-id"));
} }
});
$('#responseTabContent').on('click', 'button', function () {
if ($(this).hasClass('btn_add_condition')) { if ($(this).hasClass('btn_add_condition')) {
controller.addResponseCondition($(this).attr("data-id")); controller.addResponseCondition($(this).attr("data-id"));
} }
@@ -316,17 +315,11 @@
.attr('role', 'tab') .attr('role', 'tab')
.attr('aria-controls', 'response_tab_' + i) .attr('aria-controls', 'response_tab_' + i)
.attr('aria-selected', 'false') .attr('aria-selected', 'false')
.text(model.responses[i].defaultResponse?'기본 응답':('조건 ' + (i + 1))); .text(model.responses[i].defaultResponse?'기본 응답':('조건 ' + i));
// 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>');
let li = $('<li>').attr('class', 'nav-item') let li = $('<li>').attr('class', 'nav-item')
.attr('role','presentation') .attr('role','presentation')
.append(tabButton); .append(tabButton);
// .append(minusButton);
$('#responseTabTitle').append(li); $('#responseTabTitle').append(li);
@@ -336,6 +329,8 @@
nodeCopy.attr('class', 'tab-pane fade ' + (model.responses[i].defaultResponse? 'show active' : '')); nodeCopy.attr('class', 'tab-pane fade ' + (model.responses[i].defaultResponse? 'show active' : ''));
if (model.responses[i].defaultResponse) { if (model.responses[i].defaultResponse) {
nodeCopy.find('.condition_name').text('기본 응답'); nodeCopy.find('.condition_name').text('기본 응답');
nodeCopy.find('.condition').attr('class', 'condition')
nodeCopy.find('.condition').attr('style', 'visibility: hidden; height: 0; width:0;')
}else { }else {
nodeCopy.find('.condition_name').text('조건 ' + (i + 1)); nodeCopy.find('.condition_name').text('조건 ' + (i + 1));
} }