Remove remaining methods that returned an APIResponse.
parent
95a923dc4c
commit
ac87082c55
209
bot.go
209
bot.go
|
@ -377,37 +377,6 @@ func (bot *BotAPI) GetUpdates(config UpdateConfig) ([]Update, error) {
|
||||||
return updates, nil
|
return updates, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetWebhook sets a webhook.
|
|
||||||
//
|
|
||||||
// If this is set, GetUpdates will not get any data!
|
|
||||||
//
|
|
||||||
// If you do not have a legitimate TLS certificate, you need to include
|
|
||||||
// your self signed certificate with the config.
|
|
||||||
func (bot *BotAPI) SetWebhook(config WebhookConfig) (APIResponse, error) {
|
|
||||||
if config.Certificate == nil {
|
|
||||||
v := url.Values{}
|
|
||||||
v.Add("url", config.URL.String())
|
|
||||||
if config.MaxConnections != 0 {
|
|
||||||
v.Add("max_connections", strconv.Itoa(config.MaxConnections))
|
|
||||||
}
|
|
||||||
|
|
||||||
return bot.MakeRequest("setWebhook", v)
|
|
||||||
}
|
|
||||||
|
|
||||||
params := make(map[string]string)
|
|
||||||
params["url"] = config.URL.String()
|
|
||||||
if config.MaxConnections != 0 {
|
|
||||||
params["max_connections"] = strconv.Itoa(config.MaxConnections)
|
|
||||||
}
|
|
||||||
|
|
||||||
resp, err := bot.UploadFile("setWebhook", params, "certificate", config.Certificate)
|
|
||||||
if err != nil {
|
|
||||||
return APIResponse{}, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return resp, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetWebhookInfo allows you to fetch information about a webhook and if
|
// GetWebhookInfo allows you to fetch information about a webhook and if
|
||||||
// one currently is set, along with pending update count and error messages.
|
// one currently is set, along with pending update count and error messages.
|
||||||
func (bot *BotAPI) GetWebhookInfo() (WebhookInfo, error) {
|
func (bot *BotAPI) GetWebhookInfo() (WebhookInfo, error) {
|
||||||
|
@ -465,85 +434,6 @@ func (bot *BotAPI) ListenForWebhook(pattern string) UpdatesChannel {
|
||||||
return ch
|
return ch
|
||||||
}
|
}
|
||||||
|
|
||||||
// AnswerInlineQuery sends a response to an inline query.
|
|
||||||
//
|
|
||||||
// Note that you must respond to an inline query within 30 seconds.
|
|
||||||
func (bot *BotAPI) AnswerInlineQuery(config InlineConfig) (APIResponse, error) {
|
|
||||||
v := url.Values{}
|
|
||||||
|
|
||||||
v.Add("inline_query_id", config.InlineQueryID)
|
|
||||||
v.Add("cache_time", strconv.Itoa(config.CacheTime))
|
|
||||||
v.Add("is_personal", strconv.FormatBool(config.IsPersonal))
|
|
||||||
v.Add("next_offset", config.NextOffset)
|
|
||||||
data, err := json.Marshal(config.Results)
|
|
||||||
if err != nil {
|
|
||||||
return APIResponse{}, err
|
|
||||||
}
|
|
||||||
v.Add("results", string(data))
|
|
||||||
v.Add("switch_pm_text", config.SwitchPMText)
|
|
||||||
v.Add("switch_pm_parameter", config.SwitchPMParameter)
|
|
||||||
|
|
||||||
bot.debugLog("answerInlineQuery", v, nil)
|
|
||||||
|
|
||||||
return bot.MakeRequest("answerInlineQuery", v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// AnswerCallbackQuery sends a response to an inline query callback.
|
|
||||||
func (bot *BotAPI) AnswerCallbackQuery(config CallbackConfig) (APIResponse, error) {
|
|
||||||
v := url.Values{}
|
|
||||||
|
|
||||||
v.Add("callback_query_id", config.CallbackQueryID)
|
|
||||||
if config.Text != "" {
|
|
||||||
v.Add("text", config.Text)
|
|
||||||
}
|
|
||||||
v.Add("show_alert", strconv.FormatBool(config.ShowAlert))
|
|
||||||
if config.URL != "" {
|
|
||||||
v.Add("url", config.URL)
|
|
||||||
}
|
|
||||||
v.Add("cache_time", strconv.Itoa(config.CacheTime))
|
|
||||||
|
|
||||||
bot.debugLog("answerCallbackQuery", v, nil)
|
|
||||||
|
|
||||||
return bot.MakeRequest("answerCallbackQuery", v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// KickChatMember kicks a user from a chat. Note that this only will work
|
|
||||||
// in supergroups, and requires the bot to be an admin. Also note they
|
|
||||||
// will be unable to rejoin until they are unbanned.
|
|
||||||
func (bot *BotAPI) KickChatMember(config KickChatMemberConfig) (APIResponse, error) {
|
|
||||||
v := url.Values{}
|
|
||||||
|
|
||||||
if config.SuperGroupUsername == "" {
|
|
||||||
v.Add("chat_id", strconv.FormatInt(config.ChatID, 10))
|
|
||||||
} else {
|
|
||||||
v.Add("chat_id", config.SuperGroupUsername)
|
|
||||||
}
|
|
||||||
v.Add("user_id", strconv.Itoa(config.UserID))
|
|
||||||
|
|
||||||
if config.UntilDate != 0 {
|
|
||||||
v.Add("until_date", strconv.FormatInt(config.UntilDate, 10))
|
|
||||||
}
|
|
||||||
|
|
||||||
bot.debugLog("kickChatMember", v, nil)
|
|
||||||
|
|
||||||
return bot.MakeRequest("kickChatMember", v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// LeaveChat makes the bot leave the chat.
|
|
||||||
func (bot *BotAPI) LeaveChat(config ChatConfig) (APIResponse, error) {
|
|
||||||
v := url.Values{}
|
|
||||||
|
|
||||||
if config.SuperGroupUsername == "" {
|
|
||||||
v.Add("chat_id", strconv.FormatInt(config.ChatID, 10))
|
|
||||||
} else {
|
|
||||||
v.Add("chat_id", config.SuperGroupUsername)
|
|
||||||
}
|
|
||||||
|
|
||||||
bot.debugLog("leaveChat", v, nil)
|
|
||||||
|
|
||||||
return bot.MakeRequest("leaveChat", v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetChat gets information about a chat.
|
// GetChat gets information about a chat.
|
||||||
func (bot *BotAPI) GetChat(config ChatConfig) (Chat, error) {
|
func (bot *BotAPI) GetChat(config ChatConfig) (Chat, error) {
|
||||||
v := url.Values{}
|
v := url.Values{}
|
||||||
|
@ -640,105 +530,6 @@ func (bot *BotAPI) GetChatMember(config ChatConfigWithUser) (ChatMember, error)
|
||||||
return member, err
|
return member, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnbanChatMember unbans a user from a chat. Note that this only will work
|
|
||||||
// in supergroups and channels, and requires the bot to be an admin.
|
|
||||||
func (bot *BotAPI) UnbanChatMember(config ChatMemberConfig) (APIResponse, error) {
|
|
||||||
v := url.Values{}
|
|
||||||
|
|
||||||
if config.SuperGroupUsername != "" {
|
|
||||||
v.Add("chat_id", config.SuperGroupUsername)
|
|
||||||
} else if config.ChannelUsername != "" {
|
|
||||||
v.Add("chat_id", config.ChannelUsername)
|
|
||||||
} else {
|
|
||||||
v.Add("chat_id", strconv.FormatInt(config.ChatID, 10))
|
|
||||||
}
|
|
||||||
v.Add("user_id", strconv.Itoa(config.UserID))
|
|
||||||
|
|
||||||
bot.debugLog("unbanChatMember", v, nil)
|
|
||||||
|
|
||||||
return bot.MakeRequest("unbanChatMember", v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// RestrictChatMember to restrict a user in a supergroup. The bot must be an
|
|
||||||
//administrator in the supergroup for this to work and must have the
|
|
||||||
//appropriate admin rights. Pass True for all boolean parameters to lift
|
|
||||||
//restrictions from a user. Returns True on success.
|
|
||||||
func (bot *BotAPI) RestrictChatMember(config RestrictChatMemberConfig) (APIResponse, error) {
|
|
||||||
v := url.Values{}
|
|
||||||
|
|
||||||
if config.SuperGroupUsername != "" {
|
|
||||||
v.Add("chat_id", config.SuperGroupUsername)
|
|
||||||
} else if config.ChannelUsername != "" {
|
|
||||||
v.Add("chat_id", config.ChannelUsername)
|
|
||||||
} else {
|
|
||||||
v.Add("chat_id", strconv.FormatInt(config.ChatID, 10))
|
|
||||||
}
|
|
||||||
v.Add("user_id", strconv.Itoa(config.UserID))
|
|
||||||
|
|
||||||
if &config.CanSendMessages != nil {
|
|
||||||
v.Add("can_send_messages", strconv.FormatBool(*config.CanSendMessages))
|
|
||||||
}
|
|
||||||
if &config.CanSendMediaMessages != nil {
|
|
||||||
v.Add("can_send_media_messages", strconv.FormatBool(*config.CanSendMediaMessages))
|
|
||||||
}
|
|
||||||
if &config.CanSendOtherMessages != nil {
|
|
||||||
v.Add("can_send_other_messages", strconv.FormatBool(*config.CanSendOtherMessages))
|
|
||||||
}
|
|
||||||
if &config.CanAddWebPagePreviews != nil {
|
|
||||||
v.Add("can_add_web_page_previews", strconv.FormatBool(*config.CanAddWebPagePreviews))
|
|
||||||
}
|
|
||||||
if config.UntilDate != 0 {
|
|
||||||
v.Add("until_date", strconv.FormatInt(config.UntilDate, 10))
|
|
||||||
}
|
|
||||||
|
|
||||||
bot.debugLog("restrictChatMember", v, nil)
|
|
||||||
|
|
||||||
return bot.MakeRequest("restrictChatMember", v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// PromoteChatMember add admin rights to user
|
|
||||||
func (bot *BotAPI) PromoteChatMember(config PromoteChatMemberConfig) (APIResponse, error) {
|
|
||||||
v := url.Values{}
|
|
||||||
|
|
||||||
if config.SuperGroupUsername != "" {
|
|
||||||
v.Add("chat_id", config.SuperGroupUsername)
|
|
||||||
} else if config.ChannelUsername != "" {
|
|
||||||
v.Add("chat_id", config.ChannelUsername)
|
|
||||||
} else {
|
|
||||||
v.Add("chat_id", strconv.FormatInt(config.ChatID, 10))
|
|
||||||
}
|
|
||||||
v.Add("user_id", strconv.Itoa(config.UserID))
|
|
||||||
|
|
||||||
if &config.CanChangeInfo != nil {
|
|
||||||
v.Add("can_change_info", strconv.FormatBool(*config.CanChangeInfo))
|
|
||||||
}
|
|
||||||
if &config.CanPostMessages != nil {
|
|
||||||
v.Add("can_post_messages", strconv.FormatBool(*config.CanPostMessages))
|
|
||||||
}
|
|
||||||
if &config.CanEditMessages != nil {
|
|
||||||
v.Add("can_edit_messages", strconv.FormatBool(*config.CanEditMessages))
|
|
||||||
}
|
|
||||||
if &config.CanDeleteMessages != nil {
|
|
||||||
v.Add("can_delete_messages", strconv.FormatBool(*config.CanDeleteMessages))
|
|
||||||
}
|
|
||||||
if &config.CanInviteUsers != nil {
|
|
||||||
v.Add("can_invite_users", strconv.FormatBool(*config.CanInviteUsers))
|
|
||||||
}
|
|
||||||
if &config.CanRestrictMembers != nil {
|
|
||||||
v.Add("can_restrict_members", strconv.FormatBool(*config.CanRestrictMembers))
|
|
||||||
}
|
|
||||||
if &config.CanPinMessages != nil {
|
|
||||||
v.Add("can_pin_messages", strconv.FormatBool(*config.CanPinMessages))
|
|
||||||
}
|
|
||||||
if &config.CanPromoteMembers != nil {
|
|
||||||
v.Add("can_promote_members", strconv.FormatBool(*config.CanPromoteMembers))
|
|
||||||
}
|
|
||||||
|
|
||||||
bot.debugLog("promoteChatMember", v, nil)
|
|
||||||
|
|
||||||
return bot.MakeRequest("promoteChatMember", v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetGameHighScores allows you to get the high scores for a game.
|
// GetGameHighScores allows you to get the high scores for a game.
|
||||||
func (bot *BotAPI) GetGameHighScores(config GetGameHighScoresConfig) ([]GameHighScore, error) {
|
func (bot *BotAPI) GetGameHighScores(config GetGameHighScoresConfig) ([]GameHighScore, error) {
|
||||||
v, _ := config.values()
|
v, _ := config.values()
|
||||||
|
|
|
@ -470,7 +470,7 @@ func TestSetWebhookWithCert(t *testing.T) {
|
||||||
bot.Request(tgbotapi.RemoveWebhookConfig{})
|
bot.Request(tgbotapi.RemoveWebhookConfig{})
|
||||||
|
|
||||||
wh := tgbotapi.NewWebhookWithCert("https://example.com/tgbotapi-test/"+bot.Token, "tests/cert.pem")
|
wh := tgbotapi.NewWebhookWithCert("https://example.com/tgbotapi-test/"+bot.Token, "tests/cert.pem")
|
||||||
_, err := bot.SetWebhook(wh)
|
_, err := bot.Request(wh)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
t.Fail()
|
t.Fail()
|
||||||
|
@ -487,7 +487,7 @@ func TestSetWebhookWithoutCert(t *testing.T) {
|
||||||
bot.Request(tgbotapi.RemoveWebhookConfig{})
|
bot.Request(tgbotapi.RemoveWebhookConfig{})
|
||||||
|
|
||||||
wh := tgbotapi.NewWebhook("https://example.com/tgbotapi-test/" + bot.Token)
|
wh := tgbotapi.NewWebhook("https://example.com/tgbotapi-test/" + bot.Token)
|
||||||
_, err := bot.SetWebhook(wh)
|
_, err := bot.Request(wh)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
t.Fail()
|
t.Fail()
|
||||||
|
@ -553,7 +553,7 @@ func ExampleNewWebhook() {
|
||||||
|
|
||||||
log.Printf("Authorized on account %s", bot.Self.UserName)
|
log.Printf("Authorized on account %s", bot.Self.UserName)
|
||||||
|
|
||||||
_, err = bot.SetWebhook(tgbotapi.NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, "cert.pem"))
|
_, err = bot.Request(tgbotapi.NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, "cert.pem"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -594,7 +594,7 @@ func ExampleAnswerInlineQuery() {
|
||||||
Results: []interface{}{article},
|
Results: []interface{}{article},
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := bot.AnswerInlineQuery(inlineConf); err != nil {
|
if _, err := bot.Request(inlineConf); err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
230
configs.go
230
configs.go
|
@ -842,6 +842,48 @@ type WebhookConfig struct {
|
||||||
MaxConnections int
|
MaxConnections int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (config WebhookConfig) method() string {
|
||||||
|
return "setWebhook"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config WebhookConfig) values() (url.Values, error) {
|
||||||
|
v := url.Values{}
|
||||||
|
|
||||||
|
if config.URL != nil {
|
||||||
|
v.Add("url", config.URL.String())
|
||||||
|
}
|
||||||
|
if config.MaxConnections != 0 {
|
||||||
|
v.Add("max_connections", strconv.Itoa(config.MaxConnections))
|
||||||
|
}
|
||||||
|
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config WebhookConfig) params() (map[string]string, error) {
|
||||||
|
params := make(map[string]string)
|
||||||
|
|
||||||
|
if config.URL != nil {
|
||||||
|
params["url"] = config.URL.String()
|
||||||
|
}
|
||||||
|
if config.MaxConnections != 0 {
|
||||||
|
params["max_connections"] = strconv.Itoa(config.MaxConnections)
|
||||||
|
}
|
||||||
|
|
||||||
|
return params, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config WebhookConfig) name() string {
|
||||||
|
return "certificate"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config WebhookConfig) getFile() interface{} {
|
||||||
|
return config.Certificate
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config WebhookConfig) useExistingFile() bool {
|
||||||
|
return config.URL != nil
|
||||||
|
}
|
||||||
|
|
||||||
// RemoveWebhookConfig is a helper to remove a webhook.
|
// RemoveWebhookConfig is a helper to remove a webhook.
|
||||||
type RemoveWebhookConfig struct {
|
type RemoveWebhookConfig struct {
|
||||||
}
|
}
|
||||||
|
@ -881,6 +923,28 @@ type InlineConfig struct {
|
||||||
SwitchPMParameter string `json:"switch_pm_parameter"`
|
SwitchPMParameter string `json:"switch_pm_parameter"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (config InlineConfig) method() string {
|
||||||
|
return "answerInlineQuery"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config InlineConfig) values() (url.Values, error) {
|
||||||
|
v := url.Values{}
|
||||||
|
|
||||||
|
v.Add("inline_query_id", config.InlineQueryID)
|
||||||
|
v.Add("cache_time", strconv.Itoa(config.CacheTime))
|
||||||
|
v.Add("is_personal", strconv.FormatBool(config.IsPersonal))
|
||||||
|
v.Add("next_offset", config.NextOffset)
|
||||||
|
data, err := json.Marshal(config.Results)
|
||||||
|
if err != nil {
|
||||||
|
return v, err
|
||||||
|
}
|
||||||
|
v.Add("results", string(data))
|
||||||
|
v.Add("switch_pm_text", config.SwitchPMText)
|
||||||
|
v.Add("switch_pm_parameter", config.SwitchPMParameter)
|
||||||
|
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
|
|
||||||
// CallbackConfig contains information on making a CallbackQuery response.
|
// CallbackConfig contains information on making a CallbackQuery response.
|
||||||
type CallbackConfig struct {
|
type CallbackConfig struct {
|
||||||
CallbackQueryID string `json:"callback_query_id"`
|
CallbackQueryID string `json:"callback_query_id"`
|
||||||
|
@ -890,6 +954,26 @@ type CallbackConfig struct {
|
||||||
CacheTime int `json:"cache_time"`
|
CacheTime int `json:"cache_time"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (config CallbackConfig) method() string {
|
||||||
|
return "answerCallbackQuery"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config CallbackConfig) values() (url.Values, error) {
|
||||||
|
v := url.Values{}
|
||||||
|
|
||||||
|
v.Add("callback_query_id", config.CallbackQueryID)
|
||||||
|
if config.Text != "" {
|
||||||
|
v.Add("text", config.Text)
|
||||||
|
}
|
||||||
|
v.Add("show_alert", strconv.FormatBool(config.ShowAlert))
|
||||||
|
if config.URL != "" {
|
||||||
|
v.Add("url", config.URL)
|
||||||
|
}
|
||||||
|
v.Add("cache_time", strconv.Itoa(config.CacheTime))
|
||||||
|
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
|
|
||||||
// ChatMemberConfig contains information about a user in a chat for use
|
// ChatMemberConfig contains information about a user in a chat for use
|
||||||
// with administrative functions such as kicking or unbanning a user.
|
// with administrative functions such as kicking or unbanning a user.
|
||||||
type ChatMemberConfig struct {
|
type ChatMemberConfig struct {
|
||||||
|
@ -899,12 +983,57 @@ type ChatMemberConfig struct {
|
||||||
UserID int
|
UserID int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnbanChatMemberConfig allows you to unban a user.
|
||||||
|
type UnbanChatMemberConfig struct {
|
||||||
|
ChatMemberConfig
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config UnbanChatMemberConfig) method() string {
|
||||||
|
return "unbanChatMember"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config UnbanChatMemberConfig) values() (url.Values, error) {
|
||||||
|
v := url.Values{}
|
||||||
|
|
||||||
|
if config.SuperGroupUsername != "" {
|
||||||
|
v.Add("chat_id", config.SuperGroupUsername)
|
||||||
|
} else if config.ChannelUsername != "" {
|
||||||
|
v.Add("chat_id", config.ChannelUsername)
|
||||||
|
} else {
|
||||||
|
v.Add("chat_id", strconv.FormatInt(config.ChatID, 10))
|
||||||
|
}
|
||||||
|
v.Add("user_id", strconv.Itoa(config.UserID))
|
||||||
|
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
|
|
||||||
// KickChatMemberConfig contains extra fields to kick user
|
// KickChatMemberConfig contains extra fields to kick user
|
||||||
type KickChatMemberConfig struct {
|
type KickChatMemberConfig struct {
|
||||||
ChatMemberConfig
|
ChatMemberConfig
|
||||||
UntilDate int64
|
UntilDate int64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (config KickChatMemberConfig) method() string {
|
||||||
|
return "kickChatMember"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config KickChatMemberConfig) values() (url.Values, error) {
|
||||||
|
v := url.Values{}
|
||||||
|
|
||||||
|
if config.SuperGroupUsername == "" {
|
||||||
|
v.Add("chat_id", strconv.FormatInt(config.ChatID, 10))
|
||||||
|
} else {
|
||||||
|
v.Add("chat_id", config.SuperGroupUsername)
|
||||||
|
}
|
||||||
|
v.Add("user_id", strconv.Itoa(config.UserID))
|
||||||
|
|
||||||
|
if config.UntilDate != 0 {
|
||||||
|
v.Add("until_date", strconv.FormatInt(config.UntilDate, 10))
|
||||||
|
}
|
||||||
|
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
|
|
||||||
// RestrictChatMemberConfig contains fields to restrict members of chat
|
// RestrictChatMemberConfig contains fields to restrict members of chat
|
||||||
type RestrictChatMemberConfig struct {
|
type RestrictChatMemberConfig struct {
|
||||||
ChatMemberConfig
|
ChatMemberConfig
|
||||||
|
@ -915,6 +1044,41 @@ type RestrictChatMemberConfig struct {
|
||||||
CanAddWebPagePreviews *bool
|
CanAddWebPagePreviews *bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (config RestrictChatMemberConfig) method() string {
|
||||||
|
return "restrictChatMember"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config RestrictChatMemberConfig) values() (url.Values, error) {
|
||||||
|
v := url.Values{}
|
||||||
|
|
||||||
|
if config.SuperGroupUsername != "" {
|
||||||
|
v.Add("chat_id", config.SuperGroupUsername)
|
||||||
|
} else if config.ChannelUsername != "" {
|
||||||
|
v.Add("chat_id", config.ChannelUsername)
|
||||||
|
} else {
|
||||||
|
v.Add("chat_id", strconv.FormatInt(config.ChatID, 10))
|
||||||
|
}
|
||||||
|
v.Add("user_id", strconv.Itoa(config.UserID))
|
||||||
|
|
||||||
|
if config.CanSendMessages != nil {
|
||||||
|
v.Add("can_send_messages", strconv.FormatBool(*config.CanSendMessages))
|
||||||
|
}
|
||||||
|
if config.CanSendMediaMessages != nil {
|
||||||
|
v.Add("can_send_media_messages", strconv.FormatBool(*config.CanSendMediaMessages))
|
||||||
|
}
|
||||||
|
if config.CanSendOtherMessages != nil {
|
||||||
|
v.Add("can_send_other_messages", strconv.FormatBool(*config.CanSendOtherMessages))
|
||||||
|
}
|
||||||
|
if config.CanAddWebPagePreviews != nil {
|
||||||
|
v.Add("can_add_web_page_previews", strconv.FormatBool(*config.CanAddWebPagePreviews))
|
||||||
|
}
|
||||||
|
if config.UntilDate != 0 {
|
||||||
|
v.Add("until_date", strconv.FormatInt(config.UntilDate, 10))
|
||||||
|
}
|
||||||
|
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
|
|
||||||
// PromoteChatMemberConfig contains fields to promote members of chat
|
// PromoteChatMemberConfig contains fields to promote members of chat
|
||||||
type PromoteChatMemberConfig struct {
|
type PromoteChatMemberConfig struct {
|
||||||
ChatMemberConfig
|
ChatMemberConfig
|
||||||
|
@ -928,12 +1092,78 @@ type PromoteChatMemberConfig struct {
|
||||||
CanPromoteMembers *bool
|
CanPromoteMembers *bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (config PromoteChatMemberConfig) method() string {
|
||||||
|
return "promoteChatMember"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config PromoteChatMemberConfig) values() (url.Values, error) {
|
||||||
|
v := url.Values{}
|
||||||
|
|
||||||
|
if config.SuperGroupUsername != "" {
|
||||||
|
v.Add("chat_id", config.SuperGroupUsername)
|
||||||
|
} else if config.ChannelUsername != "" {
|
||||||
|
v.Add("chat_id", config.ChannelUsername)
|
||||||
|
} else {
|
||||||
|
v.Add("chat_id", strconv.FormatInt(config.ChatID, 10))
|
||||||
|
}
|
||||||
|
v.Add("user_id", strconv.Itoa(config.UserID))
|
||||||
|
|
||||||
|
if config.CanChangeInfo != nil {
|
||||||
|
v.Add("can_change_info", strconv.FormatBool(*config.CanChangeInfo))
|
||||||
|
}
|
||||||
|
if config.CanPostMessages != nil {
|
||||||
|
v.Add("can_post_messages", strconv.FormatBool(*config.CanPostMessages))
|
||||||
|
}
|
||||||
|
if config.CanEditMessages != nil {
|
||||||
|
v.Add("can_edit_messages", strconv.FormatBool(*config.CanEditMessages))
|
||||||
|
}
|
||||||
|
if config.CanDeleteMessages != nil {
|
||||||
|
v.Add("can_delete_messages", strconv.FormatBool(*config.CanDeleteMessages))
|
||||||
|
}
|
||||||
|
if config.CanInviteUsers != nil {
|
||||||
|
v.Add("can_invite_users", strconv.FormatBool(*config.CanInviteUsers))
|
||||||
|
}
|
||||||
|
if config.CanRestrictMembers != nil {
|
||||||
|
v.Add("can_restrict_members", strconv.FormatBool(*config.CanRestrictMembers))
|
||||||
|
}
|
||||||
|
if config.CanPinMessages != nil {
|
||||||
|
v.Add("can_pin_messages", strconv.FormatBool(*config.CanPinMessages))
|
||||||
|
}
|
||||||
|
if config.CanPromoteMembers != nil {
|
||||||
|
v.Add("can_promote_members", strconv.FormatBool(*config.CanPromoteMembers))
|
||||||
|
}
|
||||||
|
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
|
|
||||||
// ChatConfig contains information about getting information on a chat.
|
// ChatConfig contains information about getting information on a chat.
|
||||||
type ChatConfig struct {
|
type ChatConfig struct {
|
||||||
ChatID int64
|
ChatID int64
|
||||||
SuperGroupUsername string
|
SuperGroupUsername string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LeaveChatConfig allows you to leave a chat.
|
||||||
|
type LeaveChatConfig struct {
|
||||||
|
ChatID int64
|
||||||
|
ChannelUsername string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config LeaveChatConfig) method() string {
|
||||||
|
return "leaveChat"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config LeaveChatConfig) values() (url.Values, error) {
|
||||||
|
v := url.Values{}
|
||||||
|
|
||||||
|
if config.ChannelUsername == "" {
|
||||||
|
v.Add("chat_id", strconv.FormatInt(config.ChatID, 10))
|
||||||
|
} else {
|
||||||
|
v.Add("chat_id", config.ChannelUsername)
|
||||||
|
}
|
||||||
|
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
|
|
||||||
// ChatConfigWithUser contains information about getting information on
|
// ChatConfigWithUser contains information about getting information on
|
||||||
// a specific user within a chat.
|
// a specific user within a chat.
|
||||||
type ChatConfigWithUser struct {
|
type ChatConfigWithUser struct {
|
||||||
|
|
Loading…
Reference in New Issue