Skip to content

Commit a0c77b9

Browse files
committed
refactor the logic based on the suggestion
Signed-off-by: RayyanSeliya <[email protected]>
1 parent c7b9231 commit a0c77b9

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

cmd/delete.go

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ No local files are deleted.
4040
// Layer 2: Catch technical errors and provide CLI-specific user-friendly messages
4141
err := runDelete(cmd, args, newClient)
4242
if err != nil && errors.Is(err, fn.ErrNameRequired) {
43-
return formatDeleteNameRequiredError(err)
43+
return NewErrDeleteNameRequired(err)
4444
}
4545
return err
4646
},
@@ -176,26 +176,37 @@ func (c deleteConfig) Prompt() (deleteConfig, error) {
176176
return dc, err
177177
}
178178

179-
// formatDeleteNameRequiredError provides CLI-specific user-friendly error message
180-
// for delete command when function name is required
181-
func formatDeleteNameRequiredError(err error) error {
182-
return fmt.Errorf(`%v
179+
// ErrDeleteNameRequired wraps core library errors with CLI-specific context
180+
// for delete operations that require a function name or path.
181+
type ErrDeleteNameRequired struct {
182+
// Underlying error from the core library (e.g., fn.ErrNameRequired)
183+
Err error
184+
}
185+
186+
// NewErrDeleteNameRequired creates a new ErrDeleteNameRequired wrapping the given error
187+
func NewErrDeleteNameRequired(err error) ErrDeleteNameRequired {
188+
return ErrDeleteNameRequired{Err: err}
189+
}
190+
191+
// Error implements the error interface with CLI-specific help text
192+
func (e ErrDeleteNameRequired) Error() string {
193+
return fmt.Sprintf(`%v
183194
184195
Function name is required for deletion (or --path not specified).
185196
186197
You can delete functions in two ways:
187198
188-
1. By name :
199+
1. By name:
189200
func delete myfunction Delete function by name
190201
func delete myfunction --namespace apps Delete from specific namespace
191202
192-
2. By path :
203+
2. By path:
193204
func delete --path /path/to/function Delete function at specific path
194205
195206
Examples:
196207
func delete myfunction Delete 'myfunction' from cluster
197208
func delete myfunction --namespace prod Delete from 'prod' namespace
198209
func delete --path ./myfunction Delete function at path
199210
200-
For more options, run 'func delete --help'`, err)
211+
For more options, run 'func delete --help'`, e.Err)
201212
}

0 commit comments

Comments
 (0)