1
0
mirror of https://github.com/strongdm/comply synced 2024-11-05 23:45:25 +00:00
comply/internal/cli/procedure.go

54 lines
1.2 KiB
Go
Raw Normal View History

2018-05-18 06:08:34 +00:00
package cli
import (
"fmt"
"github.com/strongdm/comply/internal/config"
2018-05-18 06:08:34 +00:00
"github.com/strongdm/comply/internal/model"
"github.com/urfave/cli"
)
var procedureCommand = cli.Command{
Name: "procedure",
ShortName: "proc",
Usage: "create ticket by procedure ID",
ArgsUsage: "procedureID",
Action: procedureAction,
2018-06-08 05:23:51 +00:00
Before: beforeAll(projectMustExist, ticketingMustBeConfigured),
2018-05-18 06:08:34 +00:00
}
func procedureAction(c *cli.Context) error {
procedures, err := model.ReadProcedures()
if err != nil {
return err
}
if c.NArg() != 1 {
return cli.NewExitError("provide a procedure ID", 1)
}
procedureID := c.Args().First()
ts, err := config.Config().TicketSystem()
if err != nil {
return cli.NewExitError("error in ticket system configuration", 1)
}
tp := model.GetPlugin(model.TicketSystem(ts))
2018-05-18 06:08:34 +00:00
for _, procedure := range procedures {
if procedure.ID == procedureID {
err = tp.Create(&model.Ticket{
2018-05-18 06:08:34 +00:00
Name: procedure.Name,
Body: fmt.Sprintf("%s\n\n\n---\nProcedure-ID: %s", procedure.Body, procedure.ID),
}, []string{"comply", "comply-procedure"})
if err != nil {
return err
}
2018-05-18 06:08:34 +00:00
return nil
}
}
return cli.NewExitError(fmt.Sprintf("unknown procedure ID: %s", procedureID), 1)
}