enbas/internal/executor/errors.go
Dan Anglin eb016b96e9
fix(BREAKING): update poll interaction
Summary:

This commit updates and enhances poll interaction. From now on users
will interact with a poll via the status that contains it. Direct
interaction with the poll (via the poll's ID) is no longer supported.
This helps resolve an issue where it wasn't possible to find the owner
of the poll when interacting with it directly.

Changes:

- Users can no longer view a poll directly using the Poll ID.
  Instead polls can be viewed when viewing statuses or timelines.
- More details about a poll is shown in statuses and timelines.
- Votes are now added to polls via statuses.
- Poll results are hidden unless the following conditions are met.
    - The user is the owner of the poll.
    - The poll has expired.
    - The user has already voted in the poll.
- Enbas can now detect and stop a poll owner from voting in their own
  poll.
- When a status is created Enbas will now only print the ID of the
  created status instead of the whole thing.

PR: apollo/enbas#43

Resolves apollo/enbas#39
2024-08-14 11:29:30 +01:00

131 lines
2.6 KiB
Go

package executor
type FlagNotSetError struct {
flagText string
}
func (e FlagNotSetError) Error() string {
return "please use the required --" + e.flagText + " flag"
}
type UnsupportedTypeError struct {
resourceType string
}
func (e UnsupportedTypeError) Error() string {
return "'" + e.resourceType + "' is not supported for this operation"
}
type NoAccountSpecifiedError struct{}
func (e NoAccountSpecifiedError) Error() string {
return "no account specified in this request"
}
type UnsupportedAddOperationError struct {
ResourceType string
AddToResourceType string
}
func (e UnsupportedAddOperationError) Error() string {
return "adding '" +
e.ResourceType +
"' to '" +
e.AddToResourceType +
"' is not supported"
}
type UnsupportedRemoveOperationError struct {
ResourceType string
RemoveFromResourceType string
}
func (e UnsupportedRemoveOperationError) Error() string {
return "removing '" +
e.ResourceType +
"' from '" +
e.RemoveFromResourceType +
"' is not supported"
}
type UnsupportedShowOperationError struct {
ResourceType string
ShowFromResourceType string
}
func (e UnsupportedShowOperationError) Error() string {
return "showing '" +
e.ResourceType +
"' from '" +
e.ShowFromResourceType +
"' is not supported"
}
type EmptyContentError struct {
ResourceType string
Hint string
}
func (e EmptyContentError) Error() string {
message := "the content of this " + e.ResourceType + " should not be empty"
if e.Hint != "" {
message += ", " + e.Hint
}
return message
}
type UnknownCommandError struct {
Command string
}
func (e UnknownCommandError) Error() string {
return "unknown command '" + e.Command + "'"
}
type PollClosedError struct{}
func (e PollClosedError) Error() string {
return "this poll is closed"
}
type MultipleChoiceError struct{}
func (e MultipleChoiceError) Error() string {
return "this poll does not allow multiple choices"
}
type NoPollOptionError struct{}
func (e NoPollOptionError) Error() string {
return "no options were provided for this poll, please use the --" +
flagPollOption +
" flag to add options to the poll"
}
type NoVotesError struct{}
func (e NoVotesError) Error() string {
return "no votes were made, please add your vote(s) using the --vote flag"
}
type NoPollInStatusError struct{}
func (e NoPollInStatusError) Error() string {
return "this status does not have a poll"
}
type PollOwnerVoteError struct{}
func (e PollOwnerVoteError) Error() string {
return "you cannot vote in your own poll"
}
type NotFollowingError struct {
Account string
}
func (e NotFollowingError) Error() string {
return "you are not following " + e.Account
}