From 879d31207ddb082357334877876879a8a2fb2551 Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 목, 13 1월 2022 17:14:19 +0900 Subject: [PATCH] - api 스펙 변경 - 이슈 수정시 워크플로우에 있는 상태 이외에는 에러 처리 되도록 수정 --- src/main/java/kr/wisestone/owl/web/controller/Api/ApiController.java | 56 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/web/controller/Api/ApiController.java b/src/main/java/kr/wisestone/owl/web/controller/Api/ApiController.java index 0fbbf81..2f91fb8 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/Api/ApiController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/Api/ApiController.java @@ -1,9 +1,12 @@ package kr.wisestone.owl.web.controller.Api; import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import kr.wisestone.owl.constant.Constants; 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 +14,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; @@ -43,29 +48,46 @@ */ @PostMapping(value = "/issue") @ApiOperation(value = "�씠�뒋 異붽�", notes = "�깉濡쒖슫 �씠�뒋瑜� 異붽��븳�떎.") - @ApiImplicitParam(name = "files", required = false, dataType = "file") + @ApiImplicitParams( + { + @ApiImplicitParam(name = "files", dataType = "file"), + @ApiImplicitParam(name = "token", paramType = "form"), + @ApiImplicitParam(name = "title", paramType = "form"), + @ApiImplicitParam(name = "description", paramType = "form"), + @ApiImplicitParam(name = "issueTypeId", paramType = "form"), + @ApiImplicitParam(name = "customFields", paramType = "form") + } + ) + + @ResponseStatus(HttpStatus.CREATED) public @ResponseBody - Map<String, Object> addIssue(ApiIssueAddForm apiIssueAddForm, @RequestParam("files") List<MultipartFile> files) throws OwlRuntimeException, CloneNotSupportedException, ParseException { + Map<String, Object> 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); // 踰꾩쟾 �깮�꽦 + StringBuilder sb = new StringBuilder(); for (Issue issue : issues) { this.issueService.addIssueVersion(issue.getId(), issue.getRegisterId()); + if (sb.length() > 0) + sb.append(","); + sb.append(issue.getProject().getProjectKey()).append("-").append(issue.getIssueNumber()); } - return this.setSuccessMessage(resJsonData); + resJsonData.put(Constants.RES_KEY_MSG_SUCCESS, sb.toString()); + return resJsonData; } /** @@ -75,24 +97,32 @@ * @throws OwlRuntimeException �뙆�씪誘명꽣 �삤瑜섏떆 諛쒖깮 * @throws CloneNotSupportedException �씠�뒋 蹂듭궗 �떆�뿉 諛쒖깮 */ - @PostMapping(value = "/issue/1") + @PostMapping(value = "/issue/status") @ApiOperation(value = "�씠�뒋 �긽�깭 �닔�젙", notes = "�궗�슜�옄 �젙�쓽 �븘�뱶媛� �룞�씪�븳 湲곗〈 �씠�뒋瑜� 蹂�寃쏀븳�떎.") + @ResponseStatus(HttpStatus.OK) public @ResponseBody - Map<String, Object> modifyIssue(ApiIssueModifyForm apiIssueModifyForm) throws OwlRuntimeException, CloneNotSupportedException, ParseException { + Map<String, Object> modifyIssue(ApiIssueModifyForm apiIssueModifyForm) throws OwlRuntimeException, CloneNotSupportedException { Map<String, Object> resJsonData = new HashMap<>(); - IssueApiForm issueApiForm = ConvertUtil.copyProperties(apiIssueModifyForm, IssueApiForm.class); issueApiForm.parseCustomFields(apiIssueModifyForm.getCustomFields()); - issueApiForm.setApiType(IssueApiForm.ApiType.add); + issueApiForm.setApiType(IssueApiForm.ApiType.modify); // �궗�슜�옄 �젙�쓽 �븘�뱶媛� �뾾�쓣 寃쎌슦 寃��깋�쓣 �븷 �닔 �뾾湲� �븣臾몄뿉 �삁�쇅泥섎━ if (issueApiForm.getCustomFieldValues() == null || issueApiForm.getCustomFieldValues().size() == 0) { throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_CUSTOM_FIELD_NOT_EXIST)); } - this.issueService.modifyIssue(issueApiForm, new ArrayList<>()); - - return this.setSuccessMessage(resJsonData); + List<Issue> issues = this.issueService.modifyIssue(issueApiForm, new ArrayList<>()); + if (issues != null && issues.size() > 0) { + StringBuilder sb = new StringBuilder(); + for (Issue issue : issues) { + if (sb.length() > 0) + sb.append(","); + sb.append(issue.getProject().getProjectKey()).append("-").append(issue.getIssueNumber()); + } + resJsonData.put(Constants.RES_KEY_MSG_SUCCESS, sb.toString()); + } + return resJsonData; } } -- Gitblit v1.8.0