test master 변경

This commit is contained in:
현성필
2024-01-23 11:24:09 +09:00
parent 75a695897d
commit 91e902af25
121 changed files with 329 additions and 338 deletions
@@ -0,0 +1,36 @@
package com.eactive.testmaster.client.controller;
import com.eactive.testmaster.client.dto.ApiRequestDTO;
import com.eactive.testmaster.client.dto.ApiResponse;
import com.eactive.testmaster.client.service.NettyApiClient;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Validator;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.concurrent.ExecutionException;
@RestController
public class ApiClientController {
private final NettyApiClient nettyApiClient;
private final Validator validator;
public ApiClientController(NettyApiClient nettyApiClient, Validator validator) {
this.nettyApiClient = nettyApiClient;
this.validator = validator;
}
@PostMapping("/mgmt/api/test.do")
public ApiResponse handleApiRequest(@RequestBody ApiRequestDTO request, BindingResult bindingResult) throws InterruptedException, ExecutionException {
validator.validate(request, bindingResult);
if (bindingResult.hasErrors()) {
throw new IllegalArgumentException(bindingResult.getAllErrors().get(0).getDefaultMessage());
}
return nettyApiClient.handleRequest(request).get();
}
}
@@ -0,0 +1,29 @@
package com.eactive.testmaster.client.controller;
import com.eactive.testmaster.server.entity.Server;
import com.eactive.testmaster.server.entity.ServerRepository;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.List;
@Controller
public class ApiClientPageController {
private final ServerRepository serverRepository;
public ApiClientPageController(ServerRepository serverRepository) {
this.serverRepository = serverRepository;
}
@GetMapping("/mgmt/api_tester.do")
public String testView(ModelMap model) {
List<Server> servers = serverRepository.findAllByEnabledIs(true);
model.addAttribute("servers", servers);
return "page/tester/apiTester";
}
}
@@ -0,0 +1,83 @@
package com.eactive.testmaster.client.controller;
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.ApiRequestInfo;
import com.eactive.testmaster.client.mapper.ApiRequestMapper;
import com.eactive.testmaster.client.service.ApiRequestMgmtService;
import com.eactive.testmaster.common.util.SecurityUtil;
import com.eactive.testmaster.user.entity.StaffUser;
import com.eactive.testmaster.user.service.UserService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
public class ApiRequestMgmtController {
private static final String SUCCESS = "success";
private final ApiRequestMgmtService apiRequestMgmtService;
private final ApiRequestMapper apiRequestMapper;
private final UserService userService;
public ApiRequestMgmtController(ApiRequestMgmtService apiRequestMgmtService, ApiRequestMapper apiRequestMapper, UserService userService) {
this.apiRequestMgmtService = apiRequestMgmtService;
this.apiRequestMapper = apiRequestMapper;
this.userService = userService;
}
@GetMapping("/mgmt/collections/list.do")
public ResponseEntity<List<ApiCollectionDTO>> listApiRequests() {
StaffUser user = userService.findByEsntlId(SecurityUtil.getCurrentUserEsntlId());
List<ApiCollection> collections = apiRequestMgmtService.getMyApis(user);
return ResponseEntity.ok(apiRequestMapper.mapCollections(collections));
}
@PostMapping("/mgmt/collections/create.do")
public ResponseEntity<String> createApiCollection(
@RequestBody ApiCollectionDTO dto) {
ApiCollection collection = apiRequestMapper.map(dto);
StaffUser user = userService.findByEsntlId(SecurityUtil.getCurrentUserEsntlId());
collection.setOwner(user);
apiRequestMgmtService.createNewApiCollection(collection);
return ResponseEntity.ok(SUCCESS);
}
@PostMapping("/mgmt/collections/update.do")
public ResponseEntity<String> updateApiCollection(@RequestBody ApiCollectionDTO dto) {
ApiCollection updated = apiRequestMapper.map(dto);
apiRequestMgmtService.updateApiCollectionName(updated.getId(), updated);
return ResponseEntity.ok(SUCCESS);
}
@PostMapping("/mgmt/collections/delete.do")
public ResponseEntity<String> deleteApiCollection(@RequestBody ApiCollectionDTO dto) {
apiRequestMgmtService.deleteApiCollection(dto.getId());
return ResponseEntity.ok(SUCCESS);
}
@PostMapping("/mgmt/collections/{id}/apis/save.do")
public ResponseEntity<String> addApiToCollection(@PathVariable(name = "id") String id,
@RequestBody ApiRequestDTO dto) {
ApiRequestInfo apiRequestInfo = apiRequestMapper.map(dto);
StaffUser user = userService.findByEsntlId(SecurityUtil.getCurrentUserEsntlId());
apiRequestInfo.setOwner(user);
String apiId = apiRequestMgmtService.saveApiToCollection(id, apiRequestInfo);
return ResponseEntity.ok(apiId);
}
@PostMapping("/mgmt/collections/{id}/apis/delete.do")
public ResponseEntity<String> removeApiFromCollection(@PathVariable(name = "id") String id,
@RequestBody ApiRequestDTO dto) {
apiRequestMgmtService.removeApiFromCollection(id, dto.getId());
return ResponseEntity.ok(SUCCESS);
}
}
@@ -0,0 +1,61 @@
package com.eactive.testmaster.client.controller;
import com.eactive.testmaster.client.dto.ApiScenarioDTO;
import com.eactive.testmaster.client.entity.ApiScenario;
import com.eactive.testmaster.client.mapper.ApiScenarioMapper;
import com.eactive.testmaster.client.service.ApiScenarioMgmtService;
import com.eactive.testmaster.common.util.SecurityUtil;
import com.eactive.testmaster.user.entity.StaffUser;
import com.eactive.testmaster.user.service.UserService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/mgmt/api_scenario")
public class ApiScenarioMgmtController {
private final ApiScenarioMgmtService apiScenarioMgmtService;
private final ApiScenarioMapper apiScenarioMapper;
private final UserService userService;
public ApiScenarioMgmtController(ApiScenarioMgmtService apiScenarioMgmtService, ApiScenarioMapper apiScenarioMapper, UserService userService) {
this.apiScenarioMgmtService = apiScenarioMgmtService;
this.apiScenarioMapper = apiScenarioMapper;
this.userService = userService;
}
@GetMapping("/list.do")
public ResponseEntity<List<ApiScenarioDTO>> listScenarios() {
List<ApiScenario> scenarios = apiScenarioMgmtService.findAll();
return ResponseEntity.ok(apiScenarioMapper.toDtoList(scenarios));
}
@PostMapping("/create.do")
public ResponseEntity<ApiScenarioDTO> createScenario(@RequestBody ApiScenarioDTO apiScenarioDto) {
ApiScenario apiScenario = apiScenarioMapper.map(apiScenarioDto);
StaffUser user = userService.findByEsntlId(SecurityUtil.getCurrentUserEsntlId());
apiScenario.setOwner(user);
ApiScenario createdScenario = apiScenarioMgmtService.createApiScenario(apiScenario);
return new ResponseEntity<>(apiScenarioMapper.map(createdScenario), HttpStatus.CREATED);
}
@PostMapping("/update.do")
public ResponseEntity<ApiScenarioDTO> updateScenario(@RequestBody ApiScenarioDTO apiScenarioDto) {
ApiScenario updatedApiScenario = apiScenarioMapper.map(apiScenarioDto);
ApiScenario updatedScenario = apiScenarioMgmtService.updateApiScenario(apiScenarioDto.getId(), updatedApiScenario);
return ResponseEntity.ok(apiScenarioMapper.map(updatedScenario));
}
@PostMapping("/delete.do")
public ResponseEntity<Void> deleteScenario(@RequestBody ApiScenarioDTO apiScenarioDto) {
apiScenarioMgmtService.deleteApiScenario(apiScenarioDto.getId());
return ResponseEntity.ok().build();
}
}