From 7bc0e0568cf130b84eb829637eeb083bb1d3376f Mon Sep 17 00:00:00 2001 From: Maxim Lebedev Date: Fri, 27 Jul 2018 03:52:18 +0500 Subject: [PATCH] :sparkles: Added SetPassportDataErrors method --- constants.go | 1 + set_passport_data_errors.go | 39 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 set_passport_data_errors.go diff --git a/constants.go b/constants.go index 58c884c..069a71d 100644 --- a/constants.go +++ b/constants.go @@ -109,6 +109,7 @@ const ( MethodSetChatStickerSet = "setChatStickerSet" MethodSetChatTitle = "setChatTitle" MethodSetGameScore = "setGameScore" + MethodSetPassportDataErrors = "setPassportDataErrors" MethodSetStickerPositionInSet = "setStickerPositionInSet" MethodSetWebhook = "setWebhook" MethodStopMessageLiveLocation = "stopMessageLiveLocation" diff --git a/set_passport_data_errors.go b/set_passport_data_errors.go new file mode 100644 index 0000000..69de1ee --- /dev/null +++ b/set_passport_data_errors.go @@ -0,0 +1,39 @@ +package telegram + +import json "github.com/pquerna/ffjson/ffjson" + +type SetPassportDataErrorsParameters struct { + // User identifier + UserID int `json:"user_id"` + + // A JSON-serialized array describing the errors + Errors []PassportElementError `json:"errors"` +} + +// SetPassportDataErrors informs a user that some of the Telegram Passport +// elements they provided contains errors. The user will not be able to re-submit +// their Passport to you until the errors are fixed (the contents of the field +// for which you returned the error must change). Returns True on success. +// +// Use this if the data submitted by the user doesn't satisfy the standards your +// service requires for any reason. For example, if a birthday date seems +// invalid, a submitted document is blurry, a scan shows evidence of tampering, +// etc. Supply some details in the error message to make sure the user knows how +// to correct the issues. +func (b *Bot) SetPassportDataErrors(userId int, errors []PassportElementError) (ok bool, err error) { + dst, err := json.Marshal(&SetPassportDataErrorsParameters{ + UserID: userId, + Errors: errors, + }) + if err != nil { + return false, err + } + + resp, err := b.request(dst, MethodSetPassportDataErrors) + if err != nil { + return false, err + } + + err = json.Unmarshal(*resp.Result, &ok) + return +}