-
Notifications
You must be signed in to change notification settings - Fork 102
/
authorizationState.go
executable file
·399 lines (325 loc) · 17.2 KB
/
authorizationState.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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
// AUTOGENERATED - DO NOT EDIT
package tdlib
import (
"encoding/json"
"fmt"
)
// AuthorizationState Represents the current authorization state of the TDLib client
type AuthorizationState interface {
GetAuthorizationStateEnum() AuthorizationStateEnum
}
// AuthorizationStateEnum Alias for abstract AuthorizationState 'Sub-Classes', used as constant-enum here
type AuthorizationStateEnum string
// AuthorizationState enums
const (
AuthorizationStateWaitTdlibParametersType AuthorizationStateEnum = "authorizationStateWaitTdlibParameters"
AuthorizationStateWaitEncryptionKeyType AuthorizationStateEnum = "authorizationStateWaitEncryptionKey"
AuthorizationStateWaitPhoneNumberType AuthorizationStateEnum = "authorizationStateWaitPhoneNumber"
AuthorizationStateWaitCodeType AuthorizationStateEnum = "authorizationStateWaitCode"
AuthorizationStateWaitOtherDeviceConfirmationType AuthorizationStateEnum = "authorizationStateWaitOtherDeviceConfirmation"
AuthorizationStateWaitRegistrationType AuthorizationStateEnum = "authorizationStateWaitRegistration"
AuthorizationStateWaitPasswordType AuthorizationStateEnum = "authorizationStateWaitPassword"
AuthorizationStateReadyType AuthorizationStateEnum = "authorizationStateReady"
AuthorizationStateLoggingOutType AuthorizationStateEnum = "authorizationStateLoggingOut"
AuthorizationStateClosingType AuthorizationStateEnum = "authorizationStateClosing"
AuthorizationStateClosedType AuthorizationStateEnum = "authorizationStateClosed"
)
func unmarshalAuthorizationState(rawMsg *json.RawMessage) (AuthorizationState, error) {
if rawMsg == nil {
return nil, nil
}
var objMap map[string]interface{}
err := json.Unmarshal(*rawMsg, &objMap)
if err != nil {
return nil, err
}
switch AuthorizationStateEnum(objMap["@type"].(string)) {
case AuthorizationStateWaitTdlibParametersType:
var authorizationStateWaitTdlibParameters AuthorizationStateWaitTdlibParameters
err := json.Unmarshal(*rawMsg, &authorizationStateWaitTdlibParameters)
return &authorizationStateWaitTdlibParameters, err
case AuthorizationStateWaitEncryptionKeyType:
var authorizationStateWaitEncryptionKey AuthorizationStateWaitEncryptionKey
err := json.Unmarshal(*rawMsg, &authorizationStateWaitEncryptionKey)
return &authorizationStateWaitEncryptionKey, err
case AuthorizationStateWaitPhoneNumberType:
var authorizationStateWaitPhoneNumber AuthorizationStateWaitPhoneNumber
err := json.Unmarshal(*rawMsg, &authorizationStateWaitPhoneNumber)
return &authorizationStateWaitPhoneNumber, err
case AuthorizationStateWaitCodeType:
var authorizationStateWaitCode AuthorizationStateWaitCode
err := json.Unmarshal(*rawMsg, &authorizationStateWaitCode)
return &authorizationStateWaitCode, err
case AuthorizationStateWaitOtherDeviceConfirmationType:
var authorizationStateWaitOtherDeviceConfirmation AuthorizationStateWaitOtherDeviceConfirmation
err := json.Unmarshal(*rawMsg, &authorizationStateWaitOtherDeviceConfirmation)
return &authorizationStateWaitOtherDeviceConfirmation, err
case AuthorizationStateWaitRegistrationType:
var authorizationStateWaitRegistration AuthorizationStateWaitRegistration
err := json.Unmarshal(*rawMsg, &authorizationStateWaitRegistration)
return &authorizationStateWaitRegistration, err
case AuthorizationStateWaitPasswordType:
var authorizationStateWaitPassword AuthorizationStateWaitPassword
err := json.Unmarshal(*rawMsg, &authorizationStateWaitPassword)
return &authorizationStateWaitPassword, err
case AuthorizationStateReadyType:
var authorizationStateReady AuthorizationStateReady
err := json.Unmarshal(*rawMsg, &authorizationStateReady)
return &authorizationStateReady, err
case AuthorizationStateLoggingOutType:
var authorizationStateLoggingOut AuthorizationStateLoggingOut
err := json.Unmarshal(*rawMsg, &authorizationStateLoggingOut)
return &authorizationStateLoggingOut, err
case AuthorizationStateClosingType:
var authorizationStateClosing AuthorizationStateClosing
err := json.Unmarshal(*rawMsg, &authorizationStateClosing)
return &authorizationStateClosing, err
case AuthorizationStateClosedType:
var authorizationStateClosed AuthorizationStateClosed
err := json.Unmarshal(*rawMsg, &authorizationStateClosed)
return &authorizationStateClosed, err
default:
return nil, fmt.Errorf("Error UnMarshaling, unknown type:" + objMap["@type"].(string))
}
}
// AuthorizationStateWaitTdlibParameters TDLib needs TdlibParameters for initialization
type AuthorizationStateWaitTdlibParameters struct {
tdCommon
}
// MessageType return the string telegram-type of AuthorizationStateWaitTdlibParameters
func (authorizationStateWaitTdlibParameters *AuthorizationStateWaitTdlibParameters) MessageType() string {
return "authorizationStateWaitTdlibParameters"
}
// NewAuthorizationStateWaitTdlibParameters creates a new AuthorizationStateWaitTdlibParameters
//
func NewAuthorizationStateWaitTdlibParameters() *AuthorizationStateWaitTdlibParameters {
authorizationStateWaitTdlibParametersTemp := AuthorizationStateWaitTdlibParameters{
tdCommon: tdCommon{Type: "authorizationStateWaitTdlibParameters"},
}
return &authorizationStateWaitTdlibParametersTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateWaitTdlibParameters *AuthorizationStateWaitTdlibParameters) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateWaitTdlibParametersType
}
// AuthorizationStateWaitEncryptionKey TDLib needs an encryption key to decrypt the local database
type AuthorizationStateWaitEncryptionKey struct {
tdCommon
IsEncrypted bool `json:"is_encrypted"` // True, if the database is currently encrypted
}
// MessageType return the string telegram-type of AuthorizationStateWaitEncryptionKey
func (authorizationStateWaitEncryptionKey *AuthorizationStateWaitEncryptionKey) MessageType() string {
return "authorizationStateWaitEncryptionKey"
}
// NewAuthorizationStateWaitEncryptionKey creates a new AuthorizationStateWaitEncryptionKey
//
// @param isEncrypted True, if the database is currently encrypted
func NewAuthorizationStateWaitEncryptionKey(isEncrypted bool) *AuthorizationStateWaitEncryptionKey {
authorizationStateWaitEncryptionKeyTemp := AuthorizationStateWaitEncryptionKey{
tdCommon: tdCommon{Type: "authorizationStateWaitEncryptionKey"},
IsEncrypted: isEncrypted,
}
return &authorizationStateWaitEncryptionKeyTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateWaitEncryptionKey *AuthorizationStateWaitEncryptionKey) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateWaitEncryptionKeyType
}
// AuthorizationStateWaitPhoneNumber TDLib needs the user's phone number to authorize. Call `setAuthenticationPhoneNumber` to provide the phone number, or use `requestQrCodeAuthentication`, or `checkAuthenticationBotToken` for other authentication options
type AuthorizationStateWaitPhoneNumber struct {
tdCommon
}
// MessageType return the string telegram-type of AuthorizationStateWaitPhoneNumber
func (authorizationStateWaitPhoneNumber *AuthorizationStateWaitPhoneNumber) MessageType() string {
return "authorizationStateWaitPhoneNumber"
}
// NewAuthorizationStateWaitPhoneNumber creates a new AuthorizationStateWaitPhoneNumber
//
func NewAuthorizationStateWaitPhoneNumber() *AuthorizationStateWaitPhoneNumber {
authorizationStateWaitPhoneNumberTemp := AuthorizationStateWaitPhoneNumber{
tdCommon: tdCommon{Type: "authorizationStateWaitPhoneNumber"},
}
return &authorizationStateWaitPhoneNumberTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateWaitPhoneNumber *AuthorizationStateWaitPhoneNumber) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateWaitPhoneNumberType
}
// AuthorizationStateWaitCode TDLib needs the user's authentication code to authorize
type AuthorizationStateWaitCode struct {
tdCommon
CodeInfo *AuthenticationCodeInfo `json:"code_info"` // Information about the authorization code that was sent
}
// MessageType return the string telegram-type of AuthorizationStateWaitCode
func (authorizationStateWaitCode *AuthorizationStateWaitCode) MessageType() string {
return "authorizationStateWaitCode"
}
// NewAuthorizationStateWaitCode creates a new AuthorizationStateWaitCode
//
// @param codeInfo Information about the authorization code that was sent
func NewAuthorizationStateWaitCode(codeInfo *AuthenticationCodeInfo) *AuthorizationStateWaitCode {
authorizationStateWaitCodeTemp := AuthorizationStateWaitCode{
tdCommon: tdCommon{Type: "authorizationStateWaitCode"},
CodeInfo: codeInfo,
}
return &authorizationStateWaitCodeTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateWaitCode *AuthorizationStateWaitCode) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateWaitCodeType
}
// AuthorizationStateWaitOtherDeviceConfirmation The user needs to confirm authorization on another logged in device by scanning a QR code with the provided link
type AuthorizationStateWaitOtherDeviceConfirmation struct {
tdCommon
Link string `json:"link"` // A tg:// URL for the QR code. The link will be updated frequently
}
// MessageType return the string telegram-type of AuthorizationStateWaitOtherDeviceConfirmation
func (authorizationStateWaitOtherDeviceConfirmation *AuthorizationStateWaitOtherDeviceConfirmation) MessageType() string {
return "authorizationStateWaitOtherDeviceConfirmation"
}
// NewAuthorizationStateWaitOtherDeviceConfirmation creates a new AuthorizationStateWaitOtherDeviceConfirmation
//
// @param link A tg:// URL for the QR code. The link will be updated frequently
func NewAuthorizationStateWaitOtherDeviceConfirmation(link string) *AuthorizationStateWaitOtherDeviceConfirmation {
authorizationStateWaitOtherDeviceConfirmationTemp := AuthorizationStateWaitOtherDeviceConfirmation{
tdCommon: tdCommon{Type: "authorizationStateWaitOtherDeviceConfirmation"},
Link: link,
}
return &authorizationStateWaitOtherDeviceConfirmationTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateWaitOtherDeviceConfirmation *AuthorizationStateWaitOtherDeviceConfirmation) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateWaitOtherDeviceConfirmationType
}
// AuthorizationStateWaitRegistration The user is unregistered and need to accept terms of service and enter their first name and last name to finish registration
type AuthorizationStateWaitRegistration struct {
tdCommon
TermsOfService *TermsOfService `json:"terms_of_service"` // Telegram terms of service
}
// MessageType return the string telegram-type of AuthorizationStateWaitRegistration
func (authorizationStateWaitRegistration *AuthorizationStateWaitRegistration) MessageType() string {
return "authorizationStateWaitRegistration"
}
// NewAuthorizationStateWaitRegistration creates a new AuthorizationStateWaitRegistration
//
// @param termsOfService Telegram terms of service
func NewAuthorizationStateWaitRegistration(termsOfService *TermsOfService) *AuthorizationStateWaitRegistration {
authorizationStateWaitRegistrationTemp := AuthorizationStateWaitRegistration{
tdCommon: tdCommon{Type: "authorizationStateWaitRegistration"},
TermsOfService: termsOfService,
}
return &authorizationStateWaitRegistrationTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateWaitRegistration *AuthorizationStateWaitRegistration) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateWaitRegistrationType
}
// AuthorizationStateWaitPassword The user has been authorized, but needs to enter a password to start using the application
type AuthorizationStateWaitPassword struct {
tdCommon
PasswordHint string `json:"password_hint"` // Hint for the password; may be empty
HasRecoveryEmailAddress bool `json:"has_recovery_email_address"` // True, if a recovery email address has been set up
RecoveryEmailAddressPattern string `json:"recovery_email_address_pattern"` // Pattern of the email address to which the recovery email was sent; empty until a recovery email has been sent
}
// MessageType return the string telegram-type of AuthorizationStateWaitPassword
func (authorizationStateWaitPassword *AuthorizationStateWaitPassword) MessageType() string {
return "authorizationStateWaitPassword"
}
// NewAuthorizationStateWaitPassword creates a new AuthorizationStateWaitPassword
//
// @param passwordHint Hint for the password; may be empty
// @param hasRecoveryEmailAddress True, if a recovery email address has been set up
// @param recoveryEmailAddressPattern Pattern of the email address to which the recovery email was sent; empty until a recovery email has been sent
func NewAuthorizationStateWaitPassword(passwordHint string, hasRecoveryEmailAddress bool, recoveryEmailAddressPattern string) *AuthorizationStateWaitPassword {
authorizationStateWaitPasswordTemp := AuthorizationStateWaitPassword{
tdCommon: tdCommon{Type: "authorizationStateWaitPassword"},
PasswordHint: passwordHint,
HasRecoveryEmailAddress: hasRecoveryEmailAddress,
RecoveryEmailAddressPattern: recoveryEmailAddressPattern,
}
return &authorizationStateWaitPasswordTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateWaitPassword *AuthorizationStateWaitPassword) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateWaitPasswordType
}
// AuthorizationStateReady The user has been successfully authorized. TDLib is now ready to answer queries
type AuthorizationStateReady struct {
tdCommon
}
// MessageType return the string telegram-type of AuthorizationStateReady
func (authorizationStateReady *AuthorizationStateReady) MessageType() string {
return "authorizationStateReady"
}
// NewAuthorizationStateReady creates a new AuthorizationStateReady
//
func NewAuthorizationStateReady() *AuthorizationStateReady {
authorizationStateReadyTemp := AuthorizationStateReady{
tdCommon: tdCommon{Type: "authorizationStateReady"},
}
return &authorizationStateReadyTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateReady *AuthorizationStateReady) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateReadyType
}
// AuthorizationStateLoggingOut The user is currently logging out
type AuthorizationStateLoggingOut struct {
tdCommon
}
// MessageType return the string telegram-type of AuthorizationStateLoggingOut
func (authorizationStateLoggingOut *AuthorizationStateLoggingOut) MessageType() string {
return "authorizationStateLoggingOut"
}
// NewAuthorizationStateLoggingOut creates a new AuthorizationStateLoggingOut
//
func NewAuthorizationStateLoggingOut() *AuthorizationStateLoggingOut {
authorizationStateLoggingOutTemp := AuthorizationStateLoggingOut{
tdCommon: tdCommon{Type: "authorizationStateLoggingOut"},
}
return &authorizationStateLoggingOutTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateLoggingOut *AuthorizationStateLoggingOut) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateLoggingOutType
}
// AuthorizationStateClosing TDLib is closing, all subsequent queries will be answered with the error 500. Note that closing TDLib can take a while. All resources will be freed only after authorizationStateClosed has been received
type AuthorizationStateClosing struct {
tdCommon
}
// MessageType return the string telegram-type of AuthorizationStateClosing
func (authorizationStateClosing *AuthorizationStateClosing) MessageType() string {
return "authorizationStateClosing"
}
// NewAuthorizationStateClosing creates a new AuthorizationStateClosing
//
func NewAuthorizationStateClosing() *AuthorizationStateClosing {
authorizationStateClosingTemp := AuthorizationStateClosing{
tdCommon: tdCommon{Type: "authorizationStateClosing"},
}
return &authorizationStateClosingTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateClosing *AuthorizationStateClosing) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateClosingType
}
// AuthorizationStateClosed TDLib client is in its final state. All databases are closed and all resources are released. No other updates will be received after this. All queries will be responded to with error code 500. To continue working, one should create a new instance of the TDLib client
type AuthorizationStateClosed struct {
tdCommon
}
// MessageType return the string telegram-type of AuthorizationStateClosed
func (authorizationStateClosed *AuthorizationStateClosed) MessageType() string {
return "authorizationStateClosed"
}
// NewAuthorizationStateClosed creates a new AuthorizationStateClosed
//
func NewAuthorizationStateClosed() *AuthorizationStateClosed {
authorizationStateClosedTemp := AuthorizationStateClosed{
tdCommon: tdCommon{Type: "authorizationStateClosed"},
}
return &authorizationStateClosedTemp
}
// GetAuthorizationStateEnum return the enum type of this object
func (authorizationStateClosed *AuthorizationStateClosed) GetAuthorizationStateEnum() AuthorizationStateEnum {
return AuthorizationStateClosedType
}