diff --git a/internal/executor/add.go b/internal/executor/add.go index cb87992..04a0a22 100644 --- a/internal/executor/add.go +++ b/internal/executor/add.go @@ -32,6 +32,13 @@ func (a *AddExecutor) Execute() error { } func (a *AddExecutor) addToList(gtsClient *client.Client) error { + if a.listID == "" { + return MissingIDError{ + resource: resourceList, + action: "add to", + } + } + funcMap := map[string]func(*client.Client) error{ resourceAccount: a.addAccountsToList, } @@ -48,10 +55,6 @@ func (a *AddExecutor) addToList(gtsClient *client.Client) error { } func (a *AddExecutor) addAccountsToList(gtsClient *client.Client) error { - if a.listID == "" { - return FlagNotSetError{flagText: flagListID} - } - if a.accountNames.Empty() { return NoAccountSpecifiedError{} } @@ -138,7 +141,10 @@ func (a *AddExecutor) addToBookmarks(gtsClient *client.Client) error { func (a *AddExecutor) addStatusToBookmarks(gtsClient *client.Client) error { if a.statusID == "" { - return FlagNotSetError{flagText: flagStatusID} + return MissingIDError{ + resource: resourceStatus, + action: "add to your bookmarks", + } } if err := gtsClient.AddStatusToBookmarks(a.statusID); err != nil { @@ -152,7 +158,10 @@ func (a *AddExecutor) addStatusToBookmarks(gtsClient *client.Client) error { func (a *AddExecutor) addToStatus(gtsClient *client.Client) error { if a.statusID == "" { - return FlagNotSetError{flagText: flagStatusID} + return MissingIDError{ + resource: resourceStatus, + action: "add to", + } } funcMap := map[string]func(*client.Client) error{ diff --git a/internal/executor/delete.go b/internal/executor/delete.go index 56246a0..1e48181 100644 --- a/internal/executor/delete.go +++ b/internal/executor/delete.go @@ -33,7 +33,10 @@ func (d *DeleteExecutor) Execute() error { func (d *DeleteExecutor) deleteList(gtsClient *client.Client) error { if d.listID == "" { - return FlagNotSetError{flagText: flagListID} + return MissingIDError{ + resource: resourceList, + action: "delete", + } } if err := gtsClient.DeleteList(d.listID); err != nil { @@ -47,7 +50,10 @@ func (d *DeleteExecutor) deleteList(gtsClient *client.Client) error { func (d *DeleteExecutor) deleteStatus(gtsClient *client.Client) error { if d.statusID == "" { - return FlagNotSetError{flagText: flagStatusID} + return MissingIDError{ + resource: resourceStatus, + action: "delete", + } } status, err := gtsClient.GetStatus(d.statusID) diff --git a/internal/executor/edit.go b/internal/executor/edit.go index f2247bf..43d1450 100644 --- a/internal/executor/edit.go +++ b/internal/executor/edit.go @@ -33,7 +33,10 @@ func (e *EditExecutor) Execute() error { func (e *EditExecutor) editList(gtsClient *client.Client) error { if e.listID == "" { - return FlagNotSetError{flagText: flagListID} + return MissingIDError{ + resource: resourceList, + action: "edit", + } } list, err := gtsClient.GetList(e.listID) diff --git a/internal/executor/errors.go b/internal/executor/errors.go index 46a53de..66443f9 100644 --- a/internal/executor/errors.go +++ b/internal/executor/errors.go @@ -117,3 +117,12 @@ func (e UnexpectedNumValuesError) Error() string { e.expected, ) } + +type MissingIDError struct { + resource string + action string +} + +func (e MissingIDError) Error() string { + return "please provide the ID of the " + e.resource + " you want to " + e.action +} diff --git a/internal/executor/flags.go b/internal/executor/flags.go index 8f22c75..93f1591 100644 --- a/internal/executor/flags.go +++ b/internal/executor/flags.go @@ -5,9 +5,7 @@ const ( flagContent = "content" flagFrom = "from" flagInstance = "instance" - flagListID = "list-id" flagListTitle = "list-title" - flagStatusID = "status-id" flagTag = "tag" flagTo = "to" flagType = "type" diff --git a/internal/executor/mute.go b/internal/executor/mute.go index 1c69131..e19937c 100644 --- a/internal/executor/mute.go +++ b/internal/executor/mute.go @@ -47,7 +47,10 @@ func (m *MuteExecutor) muteAccount(gtsClient *client.Client) error { func (m *MuteExecutor) muteStatus(gtsClient *client.Client) error { if m.statusID == "" { - return FlagNotSetError{flagText: flagStatusID} + return MissingIDError{ + resource: resourceStatus, + action: "mute", + } } status, err := gtsClient.GetStatus(m.statusID) diff --git a/internal/executor/remove.go b/internal/executor/remove.go index bd1bd74..632dfc1 100644 --- a/internal/executor/remove.go +++ b/internal/executor/remove.go @@ -49,7 +49,10 @@ func (r *RemoveExecutor) removeFromList(gtsClient *client.Client) error { func (r *RemoveExecutor) removeAccountsFromList(gtsClient *client.Client) error { if r.listID == "" { - return FlagNotSetError{flagText: flagListID} + return MissingIDError{ + resource: resourceList, + action: "remove from", + } } if r.accountNames.Empty() { @@ -125,7 +128,10 @@ func (r *RemoveExecutor) removeFromBookmarks(gtsClient *client.Client) error { func (r *RemoveExecutor) removeStatusFromBookmarks(gtsClient *client.Client) error { if r.statusID == "" { - return FlagNotSetError{flagText: flagStatusID} + return MissingIDError{ + resource: resourceStatus, + action: "remove", + } } if err := gtsClient.RemoveStatusFromBookmarks(r.statusID); err != nil { @@ -139,7 +145,10 @@ func (r *RemoveExecutor) removeStatusFromBookmarks(gtsClient *client.Client) err func (r *RemoveExecutor) removeFromStatus(gtsClient *client.Client) error { if r.statusID == "" { - return FlagNotSetError{flagText: flagStatusID} + return MissingIDError{ + resource: resourceStatus, + action: "remove from", + } } funcMap := map[string]func(*client.Client) error{ diff --git a/internal/executor/show.go b/internal/executor/show.go index 4e8f824..f645a50 100644 --- a/internal/executor/show.go +++ b/internal/executor/show.go @@ -118,7 +118,10 @@ func (s *ShowExecutor) showAccount(gtsClient *client.Client) error { func (s *ShowExecutor) showStatus(gtsClient *client.Client) error { if s.statusID == "" { - return FlagNotSetError{flagText: flagStatusID} + return MissingIDError{ + resource: resourceStatus, + action: "view", + } } status, err := gtsClient.GetStatus(s.statusID) @@ -157,7 +160,10 @@ func (s *ShowExecutor) showTimeline(gtsClient *client.Client) error { timeline, err = gtsClient.GetPublicTimeline(s.limit) case model.TimelineCategoryList: if s.listID == "" { - return FlagNotSetError{flagText: flagListID} + return MissingIDError{ + resource: resourceList, + action: "view the timeline in", + } } var list model.List @@ -453,7 +459,10 @@ func (s *ShowExecutor) showMedia(gtsClient *client.Client) error { func (s *ShowExecutor) showMediaFromStatus(gtsClient *client.Client) error { if s.statusID == "" { - return FlagNotSetError{flagText: flagStatusID} + return MissingIDError{ + resource: resourceStatus, + action: "view the media from", + } } status, err := gtsClient.GetStatus(s.statusID) diff --git a/internal/executor/unmute.go b/internal/executor/unmute.go index ffb7693..cb47e9e 100644 --- a/internal/executor/unmute.go +++ b/internal/executor/unmute.go @@ -42,7 +42,10 @@ func (m *UnmuteExecutor) unmuteAccount(gtsClient *client.Client) error { func (m *UnmuteExecutor) unmuteStatus(gtsClient *client.Client) error { if m.statusID == "" { - return FlagNotSetError{flagText: flagStatusID} + return MissingIDError{ + resource: resourceStatus, + action: "unmute", + } } status, err := gtsClient.GetStatus(m.statusID)