Files
houston-be/common/jira/jira.go
Vijay Joshi fd2a977e82 INFRA-3705 : Creation of RCA ticket for sev-0 non-escalated non-CX incidents (#456)
* INFRA-3705 : Creation of RCA ticket for sev-0 non-escalated non-CX incidents

* INFRA-3705 : Self review

* INFRA-3705 : Fix tests:

* INFRA-3705 : UT's and minor constant changes

* INFRA-3705 : Add migration script
2024-09-17 10:01:07 +05:30

65 lines
1.4 KiB
Go

package jira
import (
"gorm.io/datatypes"
incidentJiraModel "houston/model/incident_jira"
"strings"
)
type JiraTeamMetadata struct {
CreateIssueConfig CreateIssueConfig `json:"createIssueConfig"`
}
type CreateIssueConfig struct {
Fields []Field `json:"fields"`
}
type Field struct {
Name string `json:"name"`
Key string `json:"key"`
Value datatypes.JSON `json:"value"`
}
type CreateJiraTicketInput struct {
IncidentID uint
Metadata JiraTeamMetadata
}
type UpdateJiraTicketInput struct {
JiraKey string
Description []DescriptionText
}
type DescriptionText struct {
Text string
Link string
}
const DefaultJiraTimeout = "DEFAULT_JIRA_TIMEOUT"
const RCAJiraType = "RCA"
const HoustonIDField = "houston_id"
const SummaryField = "summary"
const DescriptionField = "description"
const IncidentLink = "Incident Link"
const RCAJiraLink = "RCA Link"
func ConvertIncidentJiraEntitiesToCommaSeparatedLinks(jiraLinks *[]incidentJiraModel.IncidentJiraEntity) string {
var jiraLinksString string
if jiraLinks != nil {
jiraLinkStrings := make([]string, len(*jiraLinks))
for i, jiraLink := range *jiraLinks {
jiraLinkStrings[i] = jiraLink.JiraLink
}
jiraLinksString = strings.Join(jiraLinkStrings, ",")
}
return jiraLinksString
}
func GetJiraKeyFromLink(jiraLink string) string {
return jiraLink[strings.LastIndex(jiraLink, "/")+1:]
}