Adds template execution and correctly calls create ticket method
This commit is contained in:
parent
41baff8743
commit
c9cfb83e32
3 changed files with 46 additions and 9 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
|||
campaigner
|
||||
campaign.json
|
||||
template.tmpl
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"strings"
|
||||
"text/template"
|
||||
|
||||
"git.ctrlz.es/mgdelacroix/campaigner/jira"
|
||||
|
||||
|
@ -50,7 +52,7 @@ func getVarMap(vars []string) (map[string]string, error) {
|
|||
if len(parts) < 2 {
|
||||
return nil, fmt.Errorf("cannot parse var %s", v)
|
||||
}
|
||||
varMap[parts[0]] = strings.Join(parts[1:], "")
|
||||
varMap[parts[0]] = strings.Join(parts[1:], "=")
|
||||
}
|
||||
return varMap, nil
|
||||
}
|
||||
|
@ -58,32 +60,44 @@ func getVarMap(vars []string) (map[string]string, error) {
|
|||
func createJiraTicketStandaloneCmdF(cmd *cobra.Command, _ []string) error {
|
||||
username, _ := cmd.Flags().GetString("username")
|
||||
token, _ := cmd.Flags().GetString("token")
|
||||
summary, _ := cmd.Flags().GetString("summary")
|
||||
template, _ := cmd.Flags().GetString("template")
|
||||
summaryTmplStr, _ := cmd.Flags().GetString("summary")
|
||||
templatePath, _ := cmd.Flags().GetString("template")
|
||||
vars, _ := cmd.Flags().GetStringSlice("vars")
|
||||
|
||||
varMap, err := getVarMap(vars)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error processing vars: %w")
|
||||
}
|
||||
|
||||
// process template
|
||||
tmpl, err := template.ParseFiles(template)
|
||||
|
||||
sumTmpl, err := template.New("").Parse(summaryTmplStr)
|
||||
if err != nil {
|
||||
ErrorAndExit(cmd, err)
|
||||
}
|
||||
tmpl.Execute() // ToDo: write in a description var
|
||||
|
||||
var summaryBytes bytes.Buffer
|
||||
if err := sumTmpl.Execute(&summaryBytes, varMap); err != nil {
|
||||
ErrorAndExit(cmd, err)
|
||||
}
|
||||
summary := summaryBytes.String()
|
||||
|
||||
jiraClient, err := jira.NewClient(username, token)
|
||||
descTmpl, err := template.ParseFiles(templatePath)
|
||||
if err != nil {
|
||||
ErrorAndExit(cmd, err)
|
||||
}
|
||||
|
||||
var descriptionBytes bytes.Buffer
|
||||
if err := descTmpl.Execute(&descriptionBytes, varMap); err != nil {
|
||||
ErrorAndExit(cmd, err)
|
||||
}
|
||||
description := descriptionBytes.String()
|
||||
|
||||
jiraClient := jira.NewClient(username, token)
|
||||
|
||||
ticketKey, err := jiraClient.CreateTicket(summary, description)
|
||||
if err != nil {
|
||||
ErrorAndExit(cmd, err)
|
||||
}
|
||||
|
||||
cmd.Printf("Ticket %s successfully created in JIRA")
|
||||
cmd.Printf("Ticket %s successfully created in JIRA", ticketKey)
|
||||
return nil
|
||||
}
|
||||
|
|
22
jira/jira.go
Normal file
22
jira/jira.go
Normal file
|
@ -0,0 +1,22 @@
|
|||
package jira
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type JiraClient struct {
|
||||
Username string
|
||||
Token string
|
||||
}
|
||||
|
||||
func NewClient(username, token string) *JiraClient {
|
||||
return &JiraClient{
|
||||
Username: username,
|
||||
Token: token,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *JiraClient) CreateTicket(summary, description string) (string, error) {
|
||||
fmt.Printf("Summary: %s\nDescription: %s\n", summary, description)
|
||||
return "", nil
|
||||
}
|
Loading…
Reference in a new issue