7a04f298d2
- update to latest telegram layer - remove some references to fields in tg.Entities that don't exist in the schema - originally added here: https://github.com/beeper/td/commit/820929062a2ba0104397bc01235ab58a9cff780e - referenced here - https://github.com/mautrix/telegramgo/commit/124f0967ed195b5a380c9bd02e170ada9710dde3 - https://github.com/mautrix/telegramgo/commit/4205047aab2e0639217148b5d125bfaab668bd8e
576 lines
15 KiB
Go
576 lines
15 KiB
Go
// Code generated by gotdgen, DO NOT EDIT.
|
|
|
|
package tg
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
"sort"
|
|
"strings"
|
|
|
|
"go.uber.org/multierr"
|
|
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
|
|
)
|
|
|
|
// No-op definition for keeping imports.
|
|
var (
|
|
_ = bin.Buffer{}
|
|
_ = context.Background()
|
|
_ = fmt.Stringer(nil)
|
|
_ = strings.Builder{}
|
|
_ = errors.Is
|
|
_ = multierr.AppendInto
|
|
_ = sort.Ints
|
|
_ = tdp.Format
|
|
_ = tgerr.Error{}
|
|
_ = tdjson.Encoder{}
|
|
)
|
|
|
|
// PaymentsStarsStatus represents TL type `payments.starsStatus#6c9ce8ed`.
|
|
// Info about the current Telegram Star subscriptions, balance and transaction history
|
|
// »¹.
|
|
//
|
|
// Links:
|
|
// 1. https://core.telegram.org/api/stars#balance-and-transaction-history
|
|
//
|
|
// See https://core.telegram.org/constructor/payments.starsStatus for reference.
|
|
type PaymentsStarsStatus struct {
|
|
// Flags, see TL conditional fields¹
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
|
|
Flags bin.Fields
|
|
// Current Telegram Star balance.
|
|
Balance StarsAmount
|
|
// Info about current Telegram Star subscriptions, only returned when invoking payments
|
|
// getStarsTransactions¹ and payments.getStarsSubscriptions².
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/method/payments.getStarsTransactions
|
|
// 2) https://core.telegram.org/method/payments.getStarsSubscriptions
|
|
//
|
|
// Use SetSubscriptions and GetSubscriptions helpers.
|
|
Subscriptions []StarsSubscription
|
|
// Offset for pagination of subscriptions: only usable with payments
|
|
// getStarsSubscriptions¹, returned when invoking payments.getStarsTransactions² and
|
|
// payments.getStarsSubscriptions³.
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/method/payments.getStarsSubscriptions
|
|
// 2) https://core.telegram.org/method/payments.getStarsTransactions
|
|
// 3) https://core.telegram.org/method/payments.getStarsSubscriptions
|
|
//
|
|
// Use SetSubscriptionsNextOffset and GetSubscriptionsNextOffset helpers.
|
|
SubscriptionsNextOffset string
|
|
// The number of Telegram Stars the user should buy to be able to extend expired
|
|
// subscriptions soon (i.e. the current balance is not enough to extend all expired
|
|
// subscriptions).
|
|
//
|
|
// Use SetSubscriptionsMissingBalance and GetSubscriptionsMissingBalance helpers.
|
|
SubscriptionsMissingBalance int64
|
|
// List of Telegram Star transactions (partial if next_offset is set).
|
|
//
|
|
// Use SetHistory and GetHistory helpers.
|
|
History []StarsTransaction
|
|
// Offset to use to fetch more transactions from the transaction history using payments
|
|
// getStarsTransactions¹.
|
|
//
|
|
// Links:
|
|
// 1) https://core.telegram.org/method/payments.getStarsTransactions
|
|
//
|
|
// Use SetNextOffset and GetNextOffset helpers.
|
|
NextOffset string
|
|
// Chats mentioned in history.
|
|
Chats []ChatClass
|
|
// Users mentioned in history.
|
|
Users []UserClass
|
|
}
|
|
|
|
// PaymentsStarsStatusTypeID is TL type id of PaymentsStarsStatus.
|
|
const PaymentsStarsStatusTypeID = 0x6c9ce8ed
|
|
|
|
// Ensuring interfaces in compile-time for PaymentsStarsStatus.
|
|
var (
|
|
_ bin.Encoder = &PaymentsStarsStatus{}
|
|
_ bin.Decoder = &PaymentsStarsStatus{}
|
|
_ bin.BareEncoder = &PaymentsStarsStatus{}
|
|
_ bin.BareDecoder = &PaymentsStarsStatus{}
|
|
)
|
|
|
|
func (s *PaymentsStarsStatus) Zero() bool {
|
|
if s == nil {
|
|
return true
|
|
}
|
|
if !(s.Flags.Zero()) {
|
|
return false
|
|
}
|
|
if !(s.Balance.Zero()) {
|
|
return false
|
|
}
|
|
if !(s.Subscriptions == nil) {
|
|
return false
|
|
}
|
|
if !(s.SubscriptionsNextOffset == "") {
|
|
return false
|
|
}
|
|
if !(s.SubscriptionsMissingBalance == 0) {
|
|
return false
|
|
}
|
|
if !(s.History == nil) {
|
|
return false
|
|
}
|
|
if !(s.NextOffset == "") {
|
|
return false
|
|
}
|
|
if !(s.Chats == nil) {
|
|
return false
|
|
}
|
|
if !(s.Users == nil) {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// String implements fmt.Stringer.
|
|
func (s *PaymentsStarsStatus) String() string {
|
|
if s == nil {
|
|
return "PaymentsStarsStatus(nil)"
|
|
}
|
|
type Alias PaymentsStarsStatus
|
|
return fmt.Sprintf("PaymentsStarsStatus%+v", Alias(*s))
|
|
}
|
|
|
|
// FillFrom fills PaymentsStarsStatus from given interface.
|
|
func (s *PaymentsStarsStatus) FillFrom(from interface {
|
|
GetBalance() (value StarsAmount)
|
|
GetSubscriptions() (value []StarsSubscription, ok bool)
|
|
GetSubscriptionsNextOffset() (value string, ok bool)
|
|
GetSubscriptionsMissingBalance() (value int64, ok bool)
|
|
GetHistory() (value []StarsTransaction, ok bool)
|
|
GetNextOffset() (value string, ok bool)
|
|
GetChats() (value []ChatClass)
|
|
GetUsers() (value []UserClass)
|
|
}) {
|
|
s.Balance = from.GetBalance()
|
|
if val, ok := from.GetSubscriptions(); ok {
|
|
s.Subscriptions = val
|
|
}
|
|
|
|
if val, ok := from.GetSubscriptionsNextOffset(); ok {
|
|
s.SubscriptionsNextOffset = val
|
|
}
|
|
|
|
if val, ok := from.GetSubscriptionsMissingBalance(); ok {
|
|
s.SubscriptionsMissingBalance = val
|
|
}
|
|
|
|
if val, ok := from.GetHistory(); ok {
|
|
s.History = val
|
|
}
|
|
|
|
if val, ok := from.GetNextOffset(); ok {
|
|
s.NextOffset = val
|
|
}
|
|
|
|
s.Chats = from.GetChats()
|
|
s.Users = from.GetUsers()
|
|
}
|
|
|
|
// TypeID returns type id in TL schema.
|
|
//
|
|
// See https://core.telegram.org/mtproto/TL-tl#remarks.
|
|
func (*PaymentsStarsStatus) TypeID() uint32 {
|
|
return PaymentsStarsStatusTypeID
|
|
}
|
|
|
|
// TypeName returns name of type in TL schema.
|
|
func (*PaymentsStarsStatus) TypeName() string {
|
|
return "payments.starsStatus"
|
|
}
|
|
|
|
// TypeInfo returns info about TL type.
|
|
func (s *PaymentsStarsStatus) TypeInfo() tdp.Type {
|
|
typ := tdp.Type{
|
|
Name: "payments.starsStatus",
|
|
ID: PaymentsStarsStatusTypeID,
|
|
}
|
|
if s == nil {
|
|
typ.Null = true
|
|
return typ
|
|
}
|
|
typ.Fields = []tdp.Field{
|
|
{
|
|
Name: "Balance",
|
|
SchemaName: "balance",
|
|
},
|
|
{
|
|
Name: "Subscriptions",
|
|
SchemaName: "subscriptions",
|
|
Null: !s.Flags.Has(1),
|
|
},
|
|
{
|
|
Name: "SubscriptionsNextOffset",
|
|
SchemaName: "subscriptions_next_offset",
|
|
Null: !s.Flags.Has(2),
|
|
},
|
|
{
|
|
Name: "SubscriptionsMissingBalance",
|
|
SchemaName: "subscriptions_missing_balance",
|
|
Null: !s.Flags.Has(4),
|
|
},
|
|
{
|
|
Name: "History",
|
|
SchemaName: "history",
|
|
Null: !s.Flags.Has(3),
|
|
},
|
|
{
|
|
Name: "NextOffset",
|
|
SchemaName: "next_offset",
|
|
Null: !s.Flags.Has(0),
|
|
},
|
|
{
|
|
Name: "Chats",
|
|
SchemaName: "chats",
|
|
},
|
|
{
|
|
Name: "Users",
|
|
SchemaName: "users",
|
|
},
|
|
}
|
|
return typ
|
|
}
|
|
|
|
// SetFlags sets flags for non-zero fields.
|
|
func (s *PaymentsStarsStatus) SetFlags() {
|
|
if !(s.Subscriptions == nil) {
|
|
s.Flags.Set(1)
|
|
}
|
|
if !(s.SubscriptionsNextOffset == "") {
|
|
s.Flags.Set(2)
|
|
}
|
|
if !(s.SubscriptionsMissingBalance == 0) {
|
|
s.Flags.Set(4)
|
|
}
|
|
if !(s.History == nil) {
|
|
s.Flags.Set(3)
|
|
}
|
|
if !(s.NextOffset == "") {
|
|
s.Flags.Set(0)
|
|
}
|
|
}
|
|
|
|
// Encode implements bin.Encoder.
|
|
func (s *PaymentsStarsStatus) Encode(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't encode payments.starsStatus#6c9ce8ed as nil")
|
|
}
|
|
b.PutID(PaymentsStarsStatusTypeID)
|
|
return s.EncodeBare(b)
|
|
}
|
|
|
|
// EncodeBare implements bin.BareEncoder.
|
|
func (s *PaymentsStarsStatus) EncodeBare(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't encode payments.starsStatus#6c9ce8ed as nil")
|
|
}
|
|
s.SetFlags()
|
|
if err := s.Flags.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode payments.starsStatus#6c9ce8ed: field flags: %w", err)
|
|
}
|
|
if err := s.Balance.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode payments.starsStatus#6c9ce8ed: field balance: %w", err)
|
|
}
|
|
if s.Flags.Has(1) {
|
|
b.PutVectorHeader(len(s.Subscriptions))
|
|
for idx, v := range s.Subscriptions {
|
|
if err := v.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode payments.starsStatus#6c9ce8ed: field subscriptions element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
}
|
|
if s.Flags.Has(2) {
|
|
b.PutString(s.SubscriptionsNextOffset)
|
|
}
|
|
if s.Flags.Has(4) {
|
|
b.PutLong(s.SubscriptionsMissingBalance)
|
|
}
|
|
if s.Flags.Has(3) {
|
|
b.PutVectorHeader(len(s.History))
|
|
for idx, v := range s.History {
|
|
if err := v.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode payments.starsStatus#6c9ce8ed: field history element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
}
|
|
if s.Flags.Has(0) {
|
|
b.PutString(s.NextOffset)
|
|
}
|
|
b.PutVectorHeader(len(s.Chats))
|
|
for idx, v := range s.Chats {
|
|
if v == nil {
|
|
return fmt.Errorf("unable to encode payments.starsStatus#6c9ce8ed: field chats element with index %d is nil", idx)
|
|
}
|
|
if err := v.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode payments.starsStatus#6c9ce8ed: field chats element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
b.PutVectorHeader(len(s.Users))
|
|
for idx, v := range s.Users {
|
|
if v == nil {
|
|
return fmt.Errorf("unable to encode payments.starsStatus#6c9ce8ed: field users element with index %d is nil", idx)
|
|
}
|
|
if err := v.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode payments.starsStatus#6c9ce8ed: field users element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Decode implements bin.Decoder.
|
|
func (s *PaymentsStarsStatus) Decode(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't decode payments.starsStatus#6c9ce8ed to nil")
|
|
}
|
|
if err := b.ConsumeID(PaymentsStarsStatusTypeID); err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: %w", err)
|
|
}
|
|
return s.DecodeBare(b)
|
|
}
|
|
|
|
// DecodeBare implements bin.BareDecoder.
|
|
func (s *PaymentsStarsStatus) DecodeBare(b *bin.Buffer) error {
|
|
if s == nil {
|
|
return fmt.Errorf("can't decode payments.starsStatus#6c9ce8ed to nil")
|
|
}
|
|
{
|
|
if err := s.Flags.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field flags: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := s.Balance.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field balance: %w", err)
|
|
}
|
|
}
|
|
if s.Flags.Has(1) {
|
|
headerLen, err := b.VectorHeader()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field subscriptions: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
s.Subscriptions = make([]StarsSubscription, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
var value StarsSubscription
|
|
if err := value.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field subscriptions: %w", err)
|
|
}
|
|
s.Subscriptions = append(s.Subscriptions, value)
|
|
}
|
|
}
|
|
if s.Flags.Has(2) {
|
|
value, err := b.String()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field subscriptions_next_offset: %w", err)
|
|
}
|
|
s.SubscriptionsNextOffset = value
|
|
}
|
|
if s.Flags.Has(4) {
|
|
value, err := b.Long()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field subscriptions_missing_balance: %w", err)
|
|
}
|
|
s.SubscriptionsMissingBalance = value
|
|
}
|
|
if s.Flags.Has(3) {
|
|
headerLen, err := b.VectorHeader()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field history: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
s.History = make([]StarsTransaction, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
var value StarsTransaction
|
|
if err := value.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field history: %w", err)
|
|
}
|
|
s.History = append(s.History, value)
|
|
}
|
|
}
|
|
if s.Flags.Has(0) {
|
|
value, err := b.String()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field next_offset: %w", err)
|
|
}
|
|
s.NextOffset = value
|
|
}
|
|
{
|
|
headerLen, err := b.VectorHeader()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field chats: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
s.Chats = make([]ChatClass, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
value, err := DecodeChat(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field chats: %w", err)
|
|
}
|
|
s.Chats = append(s.Chats, value)
|
|
}
|
|
}
|
|
{
|
|
headerLen, err := b.VectorHeader()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field users: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
s.Users = make([]UserClass, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
value, err := DecodeUser(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode payments.starsStatus#6c9ce8ed: field users: %w", err)
|
|
}
|
|
s.Users = append(s.Users, value)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// GetBalance returns value of Balance field.
|
|
func (s *PaymentsStarsStatus) GetBalance() (value StarsAmount) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Balance
|
|
}
|
|
|
|
// SetSubscriptions sets value of Subscriptions conditional field.
|
|
func (s *PaymentsStarsStatus) SetSubscriptions(value []StarsSubscription) {
|
|
s.Flags.Set(1)
|
|
s.Subscriptions = value
|
|
}
|
|
|
|
// GetSubscriptions returns value of Subscriptions conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *PaymentsStarsStatus) GetSubscriptions() (value []StarsSubscription, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(1) {
|
|
return value, false
|
|
}
|
|
return s.Subscriptions, true
|
|
}
|
|
|
|
// SetSubscriptionsNextOffset sets value of SubscriptionsNextOffset conditional field.
|
|
func (s *PaymentsStarsStatus) SetSubscriptionsNextOffset(value string) {
|
|
s.Flags.Set(2)
|
|
s.SubscriptionsNextOffset = value
|
|
}
|
|
|
|
// GetSubscriptionsNextOffset returns value of SubscriptionsNextOffset conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *PaymentsStarsStatus) GetSubscriptionsNextOffset() (value string, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(2) {
|
|
return value, false
|
|
}
|
|
return s.SubscriptionsNextOffset, true
|
|
}
|
|
|
|
// SetSubscriptionsMissingBalance sets value of SubscriptionsMissingBalance conditional field.
|
|
func (s *PaymentsStarsStatus) SetSubscriptionsMissingBalance(value int64) {
|
|
s.Flags.Set(4)
|
|
s.SubscriptionsMissingBalance = value
|
|
}
|
|
|
|
// GetSubscriptionsMissingBalance returns value of SubscriptionsMissingBalance conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *PaymentsStarsStatus) GetSubscriptionsMissingBalance() (value int64, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(4) {
|
|
return value, false
|
|
}
|
|
return s.SubscriptionsMissingBalance, true
|
|
}
|
|
|
|
// SetHistory sets value of History conditional field.
|
|
func (s *PaymentsStarsStatus) SetHistory(value []StarsTransaction) {
|
|
s.Flags.Set(3)
|
|
s.History = value
|
|
}
|
|
|
|
// GetHistory returns value of History conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *PaymentsStarsStatus) GetHistory() (value []StarsTransaction, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(3) {
|
|
return value, false
|
|
}
|
|
return s.History, true
|
|
}
|
|
|
|
// SetNextOffset sets value of NextOffset conditional field.
|
|
func (s *PaymentsStarsStatus) SetNextOffset(value string) {
|
|
s.Flags.Set(0)
|
|
s.NextOffset = value
|
|
}
|
|
|
|
// GetNextOffset returns value of NextOffset conditional field and
|
|
// boolean which is true if field was set.
|
|
func (s *PaymentsStarsStatus) GetNextOffset() (value string, ok bool) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
if !s.Flags.Has(0) {
|
|
return value, false
|
|
}
|
|
return s.NextOffset, true
|
|
}
|
|
|
|
// GetChats returns value of Chats field.
|
|
func (s *PaymentsStarsStatus) GetChats() (value []ChatClass) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Chats
|
|
}
|
|
|
|
// GetUsers returns value of Users field.
|
|
func (s *PaymentsStarsStatus) GetUsers() (value []UserClass) {
|
|
if s == nil {
|
|
return
|
|
}
|
|
return s.Users
|
|
}
|
|
|
|
// MapChats returns field Chats wrapped in ChatClassArray helper.
|
|
func (s *PaymentsStarsStatus) MapChats() (value ChatClassArray) {
|
|
return ChatClassArray(s.Chats)
|
|
}
|
|
|
|
// MapUsers returns field Users wrapped in UserClassArray helper.
|
|
func (s *PaymentsStarsStatus) MapUsers() (value UserClassArray) {
|
|
return UserClassArray(s.Users)
|
|
}
|