package kr.wisestone.owl.web.form; import com.google.common.collect.Lists; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.*; /** * API 이슈 추가 / 수정용 form class */ public class IssueApiForm implements Serializable { public enum ApiType { add, modify } private String token; private String title; private String projectKey; private String description; private Long issueTypeId; private Long issueStatusId; 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 multipartFiles = Lists.newArrayList(); private List useIssueCustomFieldIds = Lists.newArrayList(); // 사위일감용 사용자필드값 private String url; // 탐지 시스템에서만 적용 private String comment; public IssueApiForm() { } /** * 사용자 정의 필드 변환 * @param customFieldJson 사용자 정의 필드 json */ public void parseCustomFields(String customFieldJson) { Map json = ConvertUtil.convertJsonToMap(customFieldJson); List> customFields = (List) MapUtil.getObject(json, "customFields"); for (Map customField : customFields) { IssueCustomFieldValueForm issueCustomFieldValueForm = ConvertUtil.convertMapToClass(customField, IssueCustomFieldValueForm.class); this.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); this.addCustomFieldValue(customField); } } 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 getMultipartFiles() { return multipartFiles; } public void setMultipartFiles(List multipartFiles) { this.multipartFiles = multipartFiles; } public Long getIssueStatusId() { return issueStatusId; } public void setIssueStatusId(Long issueStatusId) { this.issueStatusId = issueStatusId; } public List getUseIssueCustomFieldIds() { return useIssueCustomFieldIds; } public void setUseIssueCustomFieldIds(List useIssueCustomFieldIds) { this.useIssueCustomFieldIds = useIssueCustomFieldIds; } public void addUseIssueCustomFieldId(Long customFieldId) { if (this.useIssueCustomFieldIds != null) { this.useIssueCustomFieldIds.add(customFieldId); } } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } }