move gotd fork into repo. (#111)
- 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
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user