OWL ITS + 탐지시스템(인터넷 진흥원)
jhjang
2022-01-10 3955206191fdeb3a0609bd2170ed97f3f283d860
src/main/java/kr/wisestone/owl/web/controller/Api/ApiController.java
@@ -4,6 +4,7 @@
import io.swagger.annotations.ApiOperation;
import kr.wisestone.owl.constant.MsgConstants;
import kr.wisestone.owl.domain.Issue;
import kr.wisestone.owl.exception.ApiParameterException;
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.service.IssueService;
import kr.wisestone.owl.util.ConvertUtil;
@@ -11,8 +12,10 @@
import kr.wisestone.owl.web.form.ApiIssueAddForm;
import kr.wisestone.owl.web.form.ApiIssueModifyForm;
import kr.wisestone.owl.web.form.IssueApiForm;
import org.json.simple.parser.ParseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -34,6 +37,7 @@
    /**
     * 이슈 추가
     * @param apiIssueAddForm 입력 폼 데이터
     * @param files 파일
     * @return JSON
@@ -42,20 +46,22 @@
     */
    @PostMapping(value = "/issue")
    @ApiOperation(value = "이슈 추가", notes = "새로운 이슈를 추가한다.")
    @ApiImplicitParam(name = "files", required = false, dataType = "file")
    @ApiImplicitParam(name = "files", dataType = "file")
    @ResponseStatus(HttpStatus.CREATED)
    public
    @ResponseBody
    Map<String, Object> addIssue(ApiIssueAddForm apiIssueAddForm, @RequestParam("files") List<MultipartFile> files) throws OwlRuntimeException, CloneNotSupportedException, ParseException {
    void addIssue(ApiIssueAddForm apiIssueAddForm, @RequestParam("files") List<MultipartFile> files)
            throws OwlRuntimeException, CloneNotSupportedException {
        Map<String, Object> resJsonData = new HashMap<>();
        IssueApiForm issueApiForm = ConvertUtil.copyProperties(apiIssueAddForm, IssueApiForm.class);
//        String str = request.getParameter(Constants.REQ_KEY_CONTENT);
//        String str = request.getParameter(Constants.REQ_KEY_C0NTENT);
        issueApiForm.setMultipartFiles(files);
        issueApiForm.parseCustomFields(apiIssueAddForm.getCustomFields());
        issueApiForm.setApiType(IssueApiForm.ApiType.add);
        // 사용자 정의 필드가 없을 경우 검색을 할 수 없기 때문에 예외처리
        if (issueApiForm.getCustomFieldValues() == null || issueApiForm.getCustomFieldValues().size() == 0) {
            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_CUSTOM_FIELD_NOT_EXIST));
            throw new ApiParameterException(this.messageAccessor.getMessage(MsgConstants.API_CUSTOM_FIELD_NOT_EXIST));
        }
        List<Issue> issues = this.issueService.addApiIssue(issueApiForm);
@@ -63,21 +69,21 @@
        for (Issue issue : issues) {
            this.issueService.addIssueVersion(issue.getId(), issue.getRegisterId());
        }
        return this.setSuccessMessage(resJsonData);
    }
    /**
     * 이슈 상태 수정
     * @param apiIssueModifyForm 수정 폼 데이터
     * @return JSON
     * @throws OwlRuntimeException 파라미터 오류시 발생
     * @throws CloneNotSupportedException 이슈 복사 시에 발생
     */
    @PostMapping(value = "/issue/1")
    @PutMapping(value = "/issue")
    @ApiOperation(value = "이슈 상태 수정", notes = "사용자 정의 필드가 동일한 기존 이슈를 변경한다.")
    @ResponseStatus(HttpStatus.OK)
    public
    @ResponseBody
    Map<String, Object> modifyIssue(ApiIssueModifyForm apiIssueModifyForm) throws OwlRuntimeException, CloneNotSupportedException, ParseException {
    void modifyIssue(ApiIssueModifyForm apiIssueModifyForm) throws OwlRuntimeException, CloneNotSupportedException {
        Map<String, Object> resJsonData = new HashMap<>();
        IssueApiForm issueApiForm = ConvertUtil.copyProperties(apiIssueModifyForm, IssueApiForm.class);
@@ -89,20 +95,6 @@
        }
        this.issueService.modifyIssue(issueApiForm, new ArrayList<>());
        return this.setSuccessMessage(resJsonData);
    }
    //  이슈 조회
//    @RequestMapping(value = "/api/issueList", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
//    public
//    @ResponseBody
//    Map<String, Object> find(@RequestBody Map<String, Map<String, Object>> params) {
//        Map<String, Object> resJsonData = new HashMap<>();
//        Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params));
//
//        // todo
//        return this.setSuccessMessage(resJsonData);
//    }
}