summary refs log tree commit diff
path: root/vendor/maunium.net/go/mautrix/event/poll.go
blob: 37333015a0df582acf8f678c363853bf2d1e152c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// Copyright (c) 2024 Tulir Asokan
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

package event

type PollResponseEventContent struct {
	RelatesTo RelatesTo `json:"m.relates_to"`
	Response  struct {
		Answers []string `json:"answers"`
	} `json:"org.matrix.msc3381.poll.response"`
}

func (content *PollResponseEventContent) GetRelatesTo() *RelatesTo {
	return &content.RelatesTo
}

func (content *PollResponseEventContent) OptionalGetRelatesTo() *RelatesTo {
	if content.RelatesTo.Type == "" {
		return nil
	}
	return &content.RelatesTo
}

func (content *PollResponseEventContent) SetRelatesTo(rel *RelatesTo) {
	content.RelatesTo = *rel
}

type MSC1767Message struct {
	Text    string `json:"org.matrix.msc1767.text,omitempty"`
	HTML    string `json:"org.matrix.msc1767.html,omitempty"`
	Message []struct {
		MimeType string `json:"mimetype"`
		Body     string `json:"body"`
	} `json:"org.matrix.msc1767.message,omitempty"`
}

type PollStartEventContent struct {
	RelatesTo *RelatesTo `json:"m.relates_to"`
	Mentions  *Mentions  `json:"m.mentions,omitempty"`
	PollStart struct {
		Kind          string         `json:"kind"`
		MaxSelections int            `json:"max_selections"`
		Question      MSC1767Message `json:"question"`
		Answers       []struct {
			ID string `json:"id"`
			MSC1767Message
		} `json:"answers"`
	} `json:"org.matrix.msc3381.poll.start"`
}

func (content *PollStartEventContent) GetRelatesTo() *RelatesTo {
	if content.RelatesTo == nil {
		content.RelatesTo = &RelatesTo{}
	}
	return content.RelatesTo
}

func (content *PollStartEventContent) OptionalGetRelatesTo() *RelatesTo {
	return content.RelatesTo
}

func (content *PollStartEventContent) SetRelatesTo(rel *RelatesTo) {
	content.RelatesTo = rel
}