// 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 // GetMeParams is the parameter set for GetMe. // // A simple method for testing your bot's authentication token. Requires no parameters. Returns basic information about the bot in form of a User object. type GetMeParams struct { } // GetMe calls the getMe Telegram Bot API method. // // A simple method for testing your bot's authentication token. Requires no parameters. Returns basic information about the bot in form of a User object. func GetMe(ctx context.Context, b *client.Bot, p *GetMeParams) (*User, error) { return client.Call[*GetMeParams, *User](ctx, b, "getMe", p) } // SendMessageParams is the parameter set for SendMessage. // // Use this method to send text messages. On success, the sent Message is returned. type SendMessageParams struct { // Unique identifier for the target chat. ChatID ChatID `json:"chat_id"` // Text of the message to be sent. Text string `json:"text"` // Mode for parsing entities in the message text. ParseMode ParseMode `json:"parse_mode,omitempty"` } // SendMessage calls the sendMessage Telegram Bot API method. // // Use this method to send text messages. On success, the sent Message is returned. func SendMessage(ctx context.Context, b *client.Bot, p *SendMessageParams) (*Message, error) { return client.Call[*SendMessageParams, *Message](ctx, b, "sendMessage", p) } // SendDocumentParams is the parameter set for SendDocument. // // Use this method to send general files. On success, the sent Message is returned. type SendDocumentParams struct { // Unique identifier for the target chat. ChatID int64 `json:"chat_id"` // File to send. Document *InputFile `json:"document"` // Document caption. Caption string `json:"caption,omitempty"` } // HasFile reports whether a multipart upload is required. func (p *SendDocumentParams) HasFile() bool { if p.Document != nil && p.Document.IsLocalUpload() { return true } return false } // MultipartFields returns the non-file fields used in the multipart body. func (p *SendDocumentParams) MultipartFields() map[string]string { out := map[string]string{} out["chat_id"] = strconv.FormatInt(p.ChatID, 10) if p.Caption != "" { out["caption"] = p.Caption } return out } // MultipartFiles returns the file parts. func (p *SendDocumentParams) MultipartFiles() []client.MultipartFile { var files []client.MultipartFile if p.Document != nil && p.Document.IsLocalUpload() { name := p.Document.Filename if name == "" { name = "document" } files = append(files, client.MultipartFile{FieldName: "document", Filename: name, Reader: p.Document.Reader}) } return files } // SendDocument calls the sendDocument Telegram Bot API method. // // Use this method to send general files. On success, the sent Message is returned. func SendDocument(ctx context.Context, b *client.Bot, p *SendDocumentParams) (*Message, error) { return client.Call[*SendDocumentParams, *Message](ctx, b, "sendDocument", p) } // GetUpdatesParams is the parameter set for GetUpdates. // // Use this method to receive incoming updates using long polling. Returns an Array of Update objects. type GetUpdatesParams struct { // Limits the number of updates to be retrieved. Limit *int64 `json:"limit,omitempty"` } // GetUpdates calls the getUpdates Telegram Bot API method. // // Use this method to receive incoming updates using long polling. Returns an Array of Update objects. func GetUpdates(ctx context.Context, b *client.Bot, p *GetUpdatesParams) ([]Update, error) { return client.Call[*GetUpdatesParams, []Update](ctx, b, "getUpdates", p) }