diff options
Diffstat (limited to 'internal/api')
-rw-r--r-- | internal/api/model/poll.go | 21 | ||||
-rw-r--r-- | internal/api/model/status.go | 11 |
2 files changed, 31 insertions, 1 deletions
diff --git a/internal/api/model/poll.go b/internal/api/model/poll.go index a9842e7a9..7eddb66ef 100644 --- a/internal/api/model/poll.go +++ b/internal/api/model/poll.go @@ -17,6 +17,8 @@ package model +import "github.com/superseriousbusiness/gotosocial/internal/language" + // Poll represents a poll attached to a status. // // swagger:model poll @@ -104,3 +106,22 @@ type PollVoteRequest struct { // indices. Can be strings or integers. ChoicesI []interface{} `json:"choices"` } + +// WebPollOption models a template-ready poll option entry. +// +// swagger:ignore +type WebPollOption struct { + PollOption + + // Emojis contained on parent poll. + Emojis []Emoji + + // LanguageTag of parent status. + LanguageTag *language.Language + + // Share of total votes as a percentage. + VoteShare float32 + + // String-formatted version of VoteShare. + VoteShareStr string +} diff --git a/internal/api/model/status.go b/internal/api/model/status.go index 1efae9cfc..5c54bfe96 100644 --- a/internal/api/model/status.go +++ b/internal/api/model/status.go @@ -105,8 +105,17 @@ type Status struct { // (used only internally for templating etc). // Template-ready language tag + string, based - // on *status.Language. Nil for non-web statuses + // on *status.Language. Nil for non-web statuses. + // + // swagger:ignore LanguageTag *language.Language `json:"-"` + + // Template-ready poll options with vote shares + // calculated as a percentage of total votes. + // Nil for non-web statuses. + // + // swagger:ignore + WebPollOptions []WebPollOption `json:"-"` } /* |