// Code generated by cmd/genapi. DO NOT EDIT. //go:build !ignore_autogenerated package api import ( "context" "github.com/goccy/go-json" "strconv" "github.com/lukaszraczylo/go-telegram/client" ) var _ = strconv.Itoa // keep import for multipart helpers var _ = json.Marshal // keep import for complex multipart fields {{range .Methods}}{{$methodName := .Name}} // {{title .Name}}Params is the parameter set for {{title .Name}}. // {{docComment .Doc -}} type {{title .Name}}Params struct { {{range .Params}}{{docComment .Doc}} {{goFieldP $methodName .}} {{end}}} {{if .HasFiles}} // HasFile reports whether a multipart upload is required. func (p *{{title .Name}}Params) HasFile() bool { {{range .Params}}{{if isFileField .}}{{fileCheck .}}{{end}}{{end}} return false } // MultipartFields returns the non-file fields used in the multipart body. func (p *{{title .Name}}Params) MultipartFields() map[string]string { out := map[string]string{} {{range .Params}}{{if not (isFileField .)}}{{multipartFieldEntryP $methodName .}}{{end}}{{end}} return out } // MultipartFiles returns the file parts. func (p *{{title .Name}}Params) MultipartFiles() []client.MultipartFile { var files []client.MultipartFile {{range .Params}}{{if isFileField .}}{{multipartFileEntry .}}{{end}}{{end}} return files } {{end}} // {{title .Name}} calls the {{.Name}} Telegram Bot API method. // {{docComment .Doc -}} func {{title .Name}}(ctx context.Context, b *client.Bot, p *{{title .Name}}Params) ({{returnGoType .Returns}}, error) { {{if isSealedUnionReturn .Returns -}} raw, err := client.CallRaw[*{{title .Name}}Params](ctx, b, "{{.Name}}", p) if err != nil { return nil, err } return Unmarshal{{.Returns.Name}}(raw) {{else if isSealedUnionArrayReturn .Returns -}} raw, err := client.CallRaw[*{{title .Name}}Params](ctx, b, "{{.Name}}", p) if err != nil { return nil, err } var elems []json.RawMessage if err := json.Unmarshal(raw, &elems); err != nil { return nil, err } out := make([]{{sealedUnionElemName .Returns}}, 0, len(elems)) for _, e := range elems { v, err := Unmarshal{{sealedUnionElemName .Returns}}(e) if err != nil { return nil, err } out = append(out, v) } return out, nil {{else -}} return client.Call[*{{title .Name}}Params, {{returnGoType .Returns}}](ctx, b, "{{.Name}}", p) {{end -}} } {{end}}