1234567891011121314151617181920212223242526272829303132333435363738 |
- package mastodon
- import (
- "context"
- "fmt"
- "net/http"
- "net/url"
- "time"
- )
- type Poll struct {
- ID string `json:"id"`
- ExpiresAt *time.Time `json:"expires_at"`
- Expired bool `json:"expired"`
- Multiple bool `json:"multiple"`
- VotesCount int64 `json:"votes_count"`
- Voted bool `json:"voted"`
- Emojis []Emoji `json:"emojis"`
- Options []PollOption `json:"options"`
- }
- // Poll hold information for a mastodon poll option.
- type PollOption struct {
- Title string `json:"title"`
- VotesCount int64 `json:"votes_count"`
- }
- // Vote submits a vote with given choices to the poll specified by id.
- func (c *Client) Vote(ctx context.Context, id string, choices []string) (*Poll, error) {
- var poll Poll
- params := make(url.Values)
- params["choices[]"] = choices
- err := c.doAPI(ctx, http.MethodPost, fmt.Sprintf("/api/v1/polls/%s/votes", id), params, &poll, nil)
- if err != nil {
- return nil, err
- }
- return &poll, nil
- }
|