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
66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"go/types"
|
|
"sort"
|
|
"strings"
|
|
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/query/internal/genutil"
|
|
)
|
|
|
|
// Param represents request parameter.
|
|
type Param struct {
|
|
// Name to use in function declaration.
|
|
Name string
|
|
// OriginalName in struct definition.
|
|
OriginalName string
|
|
// Go type.
|
|
Type string
|
|
}
|
|
|
|
func varToParam(field *types.Var) Param {
|
|
fieldName := field.Name()
|
|
fieldName = strings.ToLower(fieldName[:1]) + fieldName[1:]
|
|
return Param{
|
|
Name: fieldName,
|
|
OriginalName: field.Name(),
|
|
Type: genutil.PrintType(field.Type()),
|
|
}
|
|
}
|
|
|
|
func sortParams(p []Param) []Param {
|
|
sort.SliceStable(p, func(i, j int) bool {
|
|
return p[i].Name < p[j].Name
|
|
})
|
|
|
|
return p
|
|
}
|
|
|
|
// CachedQuery is a RPC cacheable query helper.
|
|
type CachedQuery struct {
|
|
// Name of struct to generate.
|
|
Name string
|
|
// MethodName is name of method of tg.Client.
|
|
MethodName string
|
|
// RequestName is name of request struct.
|
|
RequestName string
|
|
// ManualHash determines whether hash must be computed using
|
|
// hand-written function computeHash or not.
|
|
// Need to resolve case when Telegram does not return hash with result.
|
|
ManualHash bool
|
|
// RequestParams contains additional params to send.
|
|
RequestParams []Param
|
|
// ResultName is name of result type.
|
|
ResultName string
|
|
// NotModifiedName is name of NotModified result type.
|
|
NotModifiedName string
|
|
}
|
|
|
|
// Config is codegeneration config to use.
|
|
type Config struct {
|
|
// Query helpers to generate.
|
|
Queries []CachedQuery
|
|
// ResultName package name
|
|
Package string
|
|
}
|