This repository has been archived by the owner on Jul 3, 2022. It is now read-only.
forked from Arman92/go-tdlib
/
messageSchedulingState.go
100 lines (81 loc) · 3.85 KB
/
messageSchedulingState.go
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package tdlib
import (
"encoding/json"
"fmt"
)
// MessageSchedulingState Contains information about the time when a scheduled message will be sent
type MessageSchedulingState interface {
GetMessageSchedulingStateEnum() MessageSchedulingStateEnum
}
// MessageSchedulingStateEnum Alias for abstract MessageSchedulingState 'Sub-Classes', used as constant-enum here
type MessageSchedulingStateEnum string
// MessageSchedulingState enums
const (
MessageSchedulingStateSendAtDateType MessageSchedulingStateEnum = "messageSchedulingStateSendAtDate"
MessageSchedulingStateSendWhenOnlineType MessageSchedulingStateEnum = "messageSchedulingStateSendWhenOnline"
)
func unmarshalMessageSchedulingState(rawMsg *json.RawMessage) (MessageSchedulingState, error) {
if rawMsg == nil {
return nil, nil
}
var objMap map[string]interface{}
err := json.Unmarshal(*rawMsg, &objMap)
if err != nil {
return nil, err
}
switch MessageSchedulingStateEnum(objMap["@type"].(string)) {
case MessageSchedulingStateSendAtDateType:
var messageSchedulingStateSendAtDate MessageSchedulingStateSendAtDate
err := json.Unmarshal(*rawMsg, &messageSchedulingStateSendAtDate)
return &messageSchedulingStateSendAtDate, err
case MessageSchedulingStateSendWhenOnlineType:
var messageSchedulingStateSendWhenOnline MessageSchedulingStateSendWhenOnline
err := json.Unmarshal(*rawMsg, &messageSchedulingStateSendWhenOnline)
return &messageSchedulingStateSendWhenOnline, err
default:
return nil, fmt.Errorf("Error UnMarshaling, unknown type:" + objMap["@type"].(string))
}
}
// MessageSchedulingStateSendAtDate The message will be sent at the specified date
type MessageSchedulingStateSendAtDate struct {
tdCommon
SendDate int32 `json:"send_date"` // Date the message will be sent. The date must be within 367 days in the future
}
// MessageType return the string telegram-type of MessageSchedulingStateSendAtDate
func (messageSchedulingStateSendAtDate *MessageSchedulingStateSendAtDate) MessageType() string {
return "messageSchedulingStateSendAtDate"
}
// NewMessageSchedulingStateSendAtDate creates a new MessageSchedulingStateSendAtDate
//
// @param sendDate Date the message will be sent. The date must be within 367 days in the future
func NewMessageSchedulingStateSendAtDate(sendDate int32) *MessageSchedulingStateSendAtDate {
messageSchedulingStateSendAtDateTemp := MessageSchedulingStateSendAtDate{
tdCommon: tdCommon{Type: "messageSchedulingStateSendAtDate"},
SendDate: sendDate,
}
return &messageSchedulingStateSendAtDateTemp
}
// GetMessageSchedulingStateEnum return the enum type of this object
func (messageSchedulingStateSendAtDate *MessageSchedulingStateSendAtDate) GetMessageSchedulingStateEnum() MessageSchedulingStateEnum {
return MessageSchedulingStateSendAtDateType
}
// MessageSchedulingStateSendWhenOnline The message will be sent when the peer will be online. Applicable to private chats only and when the exact online status of the peer is known
type MessageSchedulingStateSendWhenOnline struct {
tdCommon
}
// MessageType return the string telegram-type of MessageSchedulingStateSendWhenOnline
func (messageSchedulingStateSendWhenOnline *MessageSchedulingStateSendWhenOnline) MessageType() string {
return "messageSchedulingStateSendWhenOnline"
}
// NewMessageSchedulingStateSendWhenOnline creates a new MessageSchedulingStateSendWhenOnline
//
func NewMessageSchedulingStateSendWhenOnline() *MessageSchedulingStateSendWhenOnline {
messageSchedulingStateSendWhenOnlineTemp := MessageSchedulingStateSendWhenOnline{
tdCommon: tdCommon{Type: "messageSchedulingStateSendWhenOnline"},
}
return &messageSchedulingStateSendWhenOnlineTemp
}
// GetMessageSchedulingStateEnum return the enum type of this object
func (messageSchedulingStateSendWhenOnline *MessageSchedulingStateSendWhenOnline) GetMessageSchedulingStateEnum() MessageSchedulingStateEnum {
return MessageSchedulingStateSendWhenOnlineType
}