feat: add Telegram bot config UI (#1747)

* Add retry wait for telegram.GetUpdates

* Add support to set telegram robot token from UI

* Change validator of UserSettingTelegramUserID

* Add support to set telegram user id from UI

* Fix typescript check

* Add validator for SystemSettingTelegramRobotTokenName

* Optimize error notice while config telegram params

* Change for review

* Fix telegram user id could not be empty

* Fix telegram robot could not be empty

* Fix for eslint (again)

* Update web/src/components/Settings/SystemSection.tsx

---------

Co-authored-by: Athurg Feng <athurg@gooth.org>
Co-authored-by: boojack <stevenlgtm@gmail.com>
This commit is contained in:
Athurg Gooth
2023-05-26 19:16:51 +08:00
committed by GitHub
parent 4ea5426e18
commit 8628d1e4b2
8 changed files with 138 additions and 7 deletions

View File

@ -3,6 +3,7 @@ package api
import (
"encoding/json"
"fmt"
"strconv"
"golang.org/x/exp/slices"
)
@ -101,13 +102,17 @@ func (upsert UserSettingUpsert) Validate() error {
return fmt.Errorf("invalid user setting memo visibility value")
}
} else if upsert.Key == UserSettingTelegramUserIDKey {
telegramUserID := 0
err := json.Unmarshal([]byte(upsert.Value), &telegramUserID)
var s string
err := json.Unmarshal([]byte(upsert.Value), &s)
if err != nil {
return fmt.Errorf("failed to unmarshal user setting telegram userid value")
return fmt.Errorf("invalid user setting telegram user id value")
}
if telegramUserID <= 0 {
return fmt.Errorf("invalid user setting telegram userid value")
if s == "" {
return nil
}
if _, err := strconv.Atoi(s); err != nil {
return fmt.Errorf("invalid user setting telegram user id value")
}
} else {
return fmt.Errorf("invalid user setting key")