From 44931ca8087a7d3eb27c842b2e46721b4a0c2b33 Mon Sep 17 00:00:00 2001 From: Justin McCarthy Date: Thu, 7 Jun 2018 22:23:51 -0700 Subject: [PATCH] fixes #45 --- internal/cli/procedure.go | 2 +- internal/model/plugin.go | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/internal/cli/procedure.go b/internal/cli/procedure.go index 4e7acd4..bf2b4a6 100644 --- a/internal/cli/procedure.go +++ b/internal/cli/procedure.go @@ -14,7 +14,7 @@ var procedureCommand = cli.Command{ Usage: "create ticket by procedure ID", ArgsUsage: "procedureID", Action: procedureAction, - Before: projectMustExist, + Before: beforeAll(projectMustExist, ticketingMustBeConfigured), } func procedureAction(c *cli.Context) error { diff --git a/internal/model/plugin.go b/internal/model/plugin.go index 5d2fd53..3bbfdc3 100644 --- a/internal/model/plugin.go +++ b/internal/model/plugin.go @@ -50,6 +50,10 @@ func GetPlugin(ts TicketSystem) TicketPlugin { tsPluginsMu.Lock() defer tsPluginsMu.Unlock() + if ts == NoTickets { + return &noopTicketSystem{} + } + tp, ok := tsPlugins[ts] if !ok { panic("Unknown ticket system: " + ts) @@ -100,3 +104,36 @@ func Register(ts TicketSystem, plugin TicketPlugin) { tsPlugins[ts] = plugin } + +type noopTicketSystem struct{} + +func (*noopTicketSystem) Get(ID string) (*Ticket, error) { + return nil, nil +} +func (*noopTicketSystem) FindOpen() ([]*Ticket, error) { + return []*Ticket{}, nil +} +func (*noopTicketSystem) FindByTag(name, value string) ([]*Ticket, error) { + return []*Ticket{}, nil +} +func (*noopTicketSystem) FindByTagName(name string) ([]*Ticket, error) { + return []*Ticket{}, nil +} +func (*noopTicketSystem) Create(ticket *Ticket, labels []string) error { + return nil +} +func (*noopTicketSystem) Configure(map[string]interface{}) error { + return nil +} +func (*noopTicketSystem) Prompts() map[string]string { + return make(map[string]string) +} +func (*noopTicketSystem) Links() TicketLinks { + return TicketLinks{} +} +func (*noopTicketSystem) LinkFor(ticket *Ticket) string { + return "" +} +func (*noopTicketSystem) Configured() bool { + return false +}