package kr.wisestone.owl.web.form; import com.google.common.collect.Lists; import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.domain.IssueCustomFieldValue; import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; import kr.wisestone.owl.vo.CustomFieldVo; import org.springframework.web.multipart.MultipartFile; import java.util.*; public class IssueApiForm { public enum ApiType { add, modify } private String token; private String title; private String projectKey; private String description; private Long issueTypeId; private Long priorityId; private Long severityId; private Date startDate; private Date endDate; private Date searchTime; private ApiType apiType; private List departments = Lists.newArrayList(); private List issueCustomFieldValues = Lists.newArrayList(); private List> CustomFieldValues = Lists.newArrayList(); // private List> files = Lists.newArrayList(); private List multipartFiles = Lists.newArrayList(); public IssueApiForm() { } public static IssueApiForm make(Map content, List files) { IssueApiForm form = ConvertUtil.convertMapToClass(content, IssueApiForm.class); form.setMultipartFiles(files); // api 타입 if (MapUtil.getString(content, "apiType") != null) { try { form.setApiType(ApiType.valueOf(MapUtil.getString(content, "apiType"))); } catch (Exception ex) { return null; } } // 사용자 필드 정보 if (MapUtil.getObject(content, "customFields") != null){ List> customFields = (List)MapUtil.getObject(content, "customFields"); for (Map customField : customFields) { IssueCustomFieldValueForm issueCustomFieldValueForm = ConvertUtil.convertMapToClass(customField, IssueCustomFieldValueForm.class); form.addIssueCustomFieldValue(issueCustomFieldValueForm); Map customFieldVo = new HashMap<>(); customFieldVo.put("id", issueCustomFieldValueForm.getCustomFieldId()); customField.put("customFieldVo", customFieldVo); List useValues = Lists.newArrayList(); useValues.add(issueCustomFieldValueForm.getUseValue()); customField.put("useValues", useValues); form.addCustomFieldValue(customField); } } // 첨부 파일 // if (MapUtil.getObject(content, "files") != null){ // form.setFiles((List)MapUtil.getObject(content, "files")); // } return form; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getProjectKey() { return projectKey; } public void setProjectKey(String projectKey) { this.projectKey = projectKey; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Long getIssueTypeId() { return issueTypeId; } public void setIssueTypeId(Long issueTypeId) { this.issueTypeId = issueTypeId; } public Long getPriorityId() { return priorityId; } public void setPriorityId(Long priorityId) { this.priorityId = priorityId; } public Long getSeverityId() { return severityId; } public void setSeverityId(Long severityId) { this.severityId = severityId; } public List getDepartments() { return departments; } public void setDepartments(List departments) { this.departments = departments; } public Date getStartDate() { return startDate; } public void setStartDate(Date startDate) { this.startDate = startDate; } public Date getEndDate() { return endDate; } public void setEndDate(Date endDate) { this.endDate = endDate; } public Date getSearchTime() { return searchTime; } public void setSearchTime(Date searchTime) { this.searchTime = searchTime; } public List getIssueCustomFieldValues() { return issueCustomFieldValues; } public void setIssueCustomFieldValues(List issueCustomFieldValues) { this.issueCustomFieldValues = issueCustomFieldValues; } public void addIssueCustomFieldValue(IssueCustomFieldValueForm issueCustomFieldValueForm) { if (this.issueCustomFieldValues != null) { this.issueCustomFieldValues.add(issueCustomFieldValueForm); } } public void addCustomFieldValue(Map map) { if (this.CustomFieldValues != null) { this.CustomFieldValues.add(map); } } public List> getCustomFieldValues() { return CustomFieldValues; } public void setCustomFieldValues(List> customFieldValues) { CustomFieldValues = customFieldValues; } public ApiType getApiType() { return apiType; } public void setApiType(ApiType apiType) { this.apiType = apiType; } // public List> getFiles() { // return files; // } // // public void setFiles(List> files) { // this.files = files; // } public List getMultipartFiles() { return multipartFiles; } public void setMultipartFiles(List multipartFiles) { this.multipartFiles = multipartFiles; } }