Skip to content
This repository was archived by the owner on Jun 1, 2022. It is now read-only.

Commit 2b9c621

Browse files
Clean template commands
1 parent 9c884c1 commit 2b9c621

File tree

4 files changed

+26
-44
lines changed

4 files changed

+26
-44
lines changed

commands/issue_template.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ func newIssueTemplateCommandParser(opt *IssueTemplateCommnadOption) *flags.Parse
2121
}
2222

2323
type IssueTemplateCommand struct {
24-
UI ui.Ui
25-
Provider lab.Provider
24+
UI ui.Ui
25+
Provider lab.Provider
26+
ClientFactory lab.APIClientFactory
2627
}
2728

2829
func (c *IssueTemplateCommand) Synopsis() string {
@@ -38,7 +39,6 @@ func (c *IssueTemplateCommand) Help() string {
3839
}
3940

4041
func (c *IssueTemplateCommand) Run(args []string) int {
41-
// Parse flags
4242
var projectCommandOption IssueTemplateCommnadOption
4343
projectCommandParser := newIssueTemplateCommandParser(&projectCommandOption)
4444
parceArgs, err := projectCommandParser.ParseArgs(args)
@@ -47,25 +47,29 @@ func (c *IssueTemplateCommand) Run(args []string) int {
4747
return ExitCodeError
4848
}
4949

50-
// Initialize provider
5150
if err := c.Provider.Init(); err != nil {
5251
c.UI.Error(err.Error())
5352
return ExitCodeError
5453
}
5554

56-
// Getting git remote info
5755
gitlabRemote, err := c.Provider.GetCurrentRemote()
5856
if err != nil {
5957
c.UI.Error(err.Error())
6058
return ExitCodeError
6159
}
6260

63-
client, err := c.Provider.GetRepositoryClient(gitlabRemote)
61+
token, err := c.Provider.GetAPIToken(gitlabRemote)
6462
if err != nil {
6563
c.UI.Error(err.Error())
6664
return ExitCodeError
6765
}
6866

67+
if err := c.ClientFactory.Init(gitlabRemote.ApiUrl(), token); err != nil {
68+
c.UI.Error(err.Error())
69+
return ExitCodeError
70+
}
71+
client := c.ClientFactory.GetRepositoryClient()
72+
6973
if len(parceArgs) > 0 {
7074
filename := IssueTemplateDir + "/" + parceArgs[0]
7175
res, err := client.GetFile(

commands/merge-request-template.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ func newMergeRequestTemplateCommandParser(opt *MergeRequestTemplateCommnadOption
2121
}
2222

2323
type MergeRequestTemplateCommand struct {
24-
UI ui.Ui
25-
Provider lab.Provider
24+
UI ui.Ui
25+
Provider lab.Provider
26+
ClientFactory lab.APIClientFactory
2627
}
2728

2829
func (c *MergeRequestTemplateCommand) Synopsis() string {
@@ -38,7 +39,6 @@ func (c *MergeRequestTemplateCommand) Help() string {
3839
}
3940

4041
func (c *MergeRequestTemplateCommand) Run(args []string) int {
41-
// Parse flags
4242
var projectCommandOption MergeRequestTemplateCommnadOption
4343
projectCommandParser := newMergeRequestTemplateCommandParser(&projectCommandOption)
4444
parceArgs, err := projectCommandParser.ParseArgs(args)
@@ -47,25 +47,29 @@ func (c *MergeRequestTemplateCommand) Run(args []string) int {
4747
return ExitCodeError
4848
}
4949

50-
// Initialize provider
5150
if err := c.Provider.Init(); err != nil {
5251
c.UI.Error(err.Error())
5352
return ExitCodeError
5453
}
5554

56-
// Getting git remote info
5755
gitlabRemote, err := c.Provider.GetCurrentRemote()
5856
if err != nil {
5957
c.UI.Error(err.Error())
6058
return ExitCodeError
6159
}
6260

63-
client, err := c.Provider.GetRepositoryClient(gitlabRemote)
61+
token, err := c.Provider.GetAPIToken(gitlabRemote)
6462
if err != nil {
6563
c.UI.Error(err.Error())
6664
return ExitCodeError
6765
}
6866

67+
if err := c.ClientFactory.Init(gitlabRemote.ApiUrl(), token); err != nil {
68+
c.UI.Error(err.Error())
69+
return ExitCodeError
70+
}
71+
client := c.ClientFactory.GetRepositoryClient()
72+
6973
if len(parceArgs) > 0 {
7074
filename := MergeRequestTemplateDir + "/" + parceArgs[0]
7175
res, err := client.GetFile(

gitlab/gitlab.go

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ type Provider interface {
1616
GetCurrentRemote() (*git.RemoteInfo, error)
1717
GetAPIToken(remote *git.RemoteInfo) (string, error)
1818
GetProjectVariableClient(remote *git.RemoteInfo) (ProjectVariable, error)
19-
GetRepositoryClient(remote *git.RemoteInfo) (Repository, error)
20-
GetNoteClient(remote *git.RemoteInfo) (Note, error)
2119
}
2220

2321
type GitlabProvider struct {
@@ -151,22 +149,6 @@ func (p *GitlabProvider) GetProjectVariableClient(remote *git.RemoteInfo) (Proje
151149
return NewProjectVariableClient(gitlabClient), nil
152150
}
153151

154-
func (p *GitlabProvider) GetRepositoryClient(remote *git.RemoteInfo) (Repository, error) {
155-
gitlabClient, err := p.makeGitLabClient(remote)
156-
if err != nil {
157-
return nil, err
158-
}
159-
return NewRepositoryClient(gitlabClient), nil
160-
}
161-
162-
func (p *GitlabProvider) GetNoteClient(remote *git.RemoteInfo) (Note, error) {
163-
gitlabClient, err := p.makeGitLabClient(remote)
164-
if err != nil {
165-
return nil, err
166-
}
167-
return NewNoteClient(gitlabClient), nil
168-
}
169-
170152
func (p *GitlabProvider) selectTargetRemote(remoteInfos []*git.RemoteInfo) (*git.RemoteInfo, error) {
171153
// Receive number of the domain of the remote repository to be searched from stdin
172154
p.UI.Message("That repository existing multi gitlab remote repository.")
@@ -234,8 +216,6 @@ type MockProvider struct {
234216
MockGetSpecificRemote func(namespace, project string) *git.RemoteInfo
235217
MockGetCurrentRemote func() (*git.RemoteInfo, error)
236218
MockGetProjectVariableClient func(remote *git.RemoteInfo) (ProjectVariable, error)
237-
MockGetRepositoryClient func(remote *git.RemoteInfo) (Repository, error)
238-
MockGetNoteClient func(remote *git.RemoteInfo) (Note, error)
239219
}
240220

241221
func (m *MockProvider) Init() error {
@@ -254,14 +234,6 @@ func (m *MockProvider) GetProjectVariableClient(remote *git.RemoteInfo) (Project
254234
return m.MockGetProjectVariableClient(remote)
255235
}
256236

257-
func (m *MockProvider) GetRepositoryClient(remote *git.RemoteInfo) (Repository, error) {
258-
return m.MockGetRepositoryClient(remote)
259-
}
260-
261-
func (m *MockProvider) GetNoteClient(remote *git.RemoteInfo) (Note, error) {
262-
return m.MockGetNoteClient(remote)
263-
}
264-
265237
func getGitlabClient(url, token string) (*gitlab.Client, error) {
266238
client := gitlab.NewClient(nil, token)
267239
if err := client.SetBaseURL(url); err != nil {

main.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,14 +128,16 @@ func realMain(writer io.Writer, ver, rev string) int {
128128
},
129129
"issue-template": func() (cli.Command, error) {
130130
return &commands.IssueTemplateCommand{
131-
UI: ui,
132-
Provider: provider,
131+
UI: ui,
132+
Provider: provider,
133+
ClientFactory: &lab.GitlabClientFactory{},
133134
}, nil
134135
},
135136
"merge-request-template": func() (cli.Command, error) {
136137
return &commands.MergeRequestTemplateCommand{
137-
UI: ui,
138-
Provider: provider,
138+
UI: ui,
139+
Provider: provider,
140+
ClientFactory: &lab.GitlabClientFactory{},
139141
}, nil
140142
},
141143
}

0 commit comments

Comments
 (0)