Skip to content
This repository was archived by the owner on Feb 16, 2023. It is now read-only.

Commit 4febd9d

Browse files
committed
Extract determining iterator and audit table to a function
1 parent 75efaa8 commit 4febd9d

1 file changed

Lines changed: 43 additions & 39 deletions

File tree

internals/secrethub/audit.go

Lines changed: 43 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -58,45 +58,7 @@ func (cmd *AuditCommand) run() error {
5858
return fmt.Errorf("per-page should be positive, got %d", cmd.perPage)
5959
}
6060

61-
var auditTable auditTable
62-
var iter secrethub.AuditEventIterator
63-
64-
repoPath, err := cmd.path.ToRepoPath()
65-
if err == nil {
66-
client, err := cmd.newClient()
67-
if err != nil {
68-
return err
69-
}
70-
tree, err := client.Dirs().GetTree(repoPath.GetDirPath().Value(), -1, false)
71-
if err != nil {
72-
return err
73-
}
74-
75-
iter = client.Repos().EventIterator(repoPath.Value(), &secrethub.AuditEventIteratorParams{})
76-
auditTable = newRepoAuditTable(tree, cmd.timeFormatter)
77-
} else {
78-
secretPath, err := cmd.path.ToSecretPath()
79-
if err == nil {
80-
if cmd.path.HasVersion() {
81-
return ErrCannotAuditSecretVersion
82-
}
83-
84-
client, err := cmd.newClient()
85-
if err != nil {
86-
return err
87-
}
88-
89-
isDir, err := client.Dirs().Exists(secretPath.Value())
90-
if err == nil && isDir {
91-
return ErrCannotAuditDir
92-
}
93-
94-
iter = client.Secrets().EventIterator(secretPath.Value(), &secrethub.AuditEventIteratorParams{})
95-
auditTable = newSecretAuditTable(cmd.timeFormatter)
96-
} else {
97-
return ErrNoValidRepoOrSecretPath
98-
}
99-
}
61+
iter, auditTable, err := cmd.iterAndAuditTable()
10062

10163
tabWriter := tabwriter.NewWriter(cmd.io.Stdout(), 0, 4, 4, ' ', 0)
10264
header := strings.Join(auditTable.header(), "\t") + "\n"
@@ -143,6 +105,48 @@ func (cmd *AuditCommand) run() error {
143105
return nil
144106
}
145107

108+
func (cmd *AuditCommand) iterAndAuditTable() (secrethub.AuditEventIterator, auditTable, error) {
109+
repoPath, err := cmd.path.ToRepoPath()
110+
if err == nil {
111+
client, err := cmd.newClient()
112+
if err != nil {
113+
return nil, nil, err
114+
}
115+
tree, err := client.Dirs().GetTree(repoPath.GetDirPath().Value(), -1, false)
116+
if err != nil {
117+
return nil, nil, err
118+
}
119+
120+
iter := client.Repos().EventIterator(repoPath.Value(), &secrethub.AuditEventIteratorParams{})
121+
auditTable := newRepoAuditTable(tree, cmd.timeFormatter)
122+
return iter, auditTable, nil
123+
124+
}
125+
126+
secretPath, err := cmd.path.ToSecretPath()
127+
if err == nil {
128+
if cmd.path.HasVersion() {
129+
return nil, nil, ErrCannotAuditSecretVersion
130+
}
131+
132+
client, err := cmd.newClient()
133+
if err != nil {
134+
return nil, nil, err
135+
}
136+
137+
isDir, err := client.Dirs().Exists(secretPath.Value())
138+
if err == nil && isDir {
139+
return nil, nil, ErrCannotAuditDir
140+
}
141+
142+
iter := client.Secrets().EventIterator(secretPath.Value(), &secrethub.AuditEventIteratorParams{})
143+
auditTable := newSecretAuditTable(cmd.timeFormatter)
144+
return iter, auditTable, nil
145+
}
146+
147+
return nil, nil, ErrNoValidRepoOrSecretPath
148+
}
149+
146150
type auditTable interface {
147151
header() []string
148152
row(event api.Audit) ([]string, error)

0 commit comments

Comments
 (0)