OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-27 b2b9e785e10c8fd59c3fcee8c8fda2aeb86be8c3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package kr.wisestone.owl.web.controller;
 
import kr.wisestone.owl.constant.Constants;
import kr.wisestone.owl.constant.MsgConstants;
import kr.wisestone.owl.domain.Issue;
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.service.IssueService;
import kr.wisestone.owl.util.ConvertUtil;
import kr.wisestone.owl.web.form.IssueApiForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartHttpServletRequest;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
@Controller
public class ApiController extends BaseController {
 
    @Autowired
    private IssueService issueService;
 
    @RequestMapping(value = "api/issue", method = RequestMethod.POST)
    public
    @ResponseBody
    Map<String, Object> addIssue(MultipartHttpServletRequest request) throws OwlRuntimeException, CloneNotSupportedException {
        Map<String, Object> resJsonData = new HashMap<>();
 
        String str = request.getParameter(Constants.REQ_KEY_CONTENT);
 
        IssueApiForm issueForm = IssueApiForm.make(ConvertUtil.convertJsonToMap(str), request.getFiles("file"));
        if (issueForm == null) {
            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_PARAMETER_ERROR));
        }
        // 사용자 정의 필드가 없을 경우 검색을 할 수 없기 때문에 예외처리
        else if (issueForm.getCustomFieldValues() == null || issueForm.getCustomFieldValues().size() == 0) {
            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_CUSTOM_FIELD_NOT_EXIST));
        }
 
        if (issueForm.getApiType() == IssueApiForm.ApiType.add) {
            List<Issue> issues = this.issueService.addApiIssue(issueForm);
            //  버전 생성
            for (Issue issue : issues) {
                this.issueService.addIssueVersion(issue.getId(), issue.getRegisterId());
            }
        } else {
 
 
            this.issueService.modifyIssue(issueForm, request.getFiles("file"));
        }
 
        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);
//    }
}