feat: trim white space

This commit is contained in:
Simon Ding
2024-09-23 22:44:15 +08:00
parent 40c6e2df5c
commit f4ccc69b50
5 changed files with 48 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
package utils
import (
"encoding/json"
"os"
"regexp"
"strconv"
@@ -147,3 +148,38 @@ func ChangeFileHash(name string) error {
}
return nil
}
func TrimFields(v interface{}) error {
bytes, err := json.Marshal(v)
if err != nil {
return err
}
var mapSI map[string]interface{}
if err := json.Unmarshal(bytes, &mapSI); err != nil {
return err
}
mapSI = trimMapStringInterface(mapSI).(map[string]interface{})
bytes2, err := json.Marshal(mapSI)
if err != nil {
return err
}
if err := json.Unmarshal(bytes2, v); err != nil {
return err
}
return nil
}
func trimMapStringInterface(data interface{}) interface{} {
if values, valid := data.([]interface{}); valid {
for i := range values {
data.([]interface{})[i] = trimMapStringInterface(values[i])
}
} else if values, valid := data.(map[string]interface{}); valid {
for k, v := range values {
data.(map[string]interface{})[k] = trimMapStringInterface(v)
}
} else if value, valid := data.(string); valid {
data = strings.TrimSpace(value)
}
return data
}

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"polaris/ent"
"polaris/ent/importlist"
"polaris/pkg/utils"
"github.com/gin-gonic/gin"
"github.com/pkg/errors"
@@ -28,6 +29,8 @@ func (s *Server) addImportlist(c *gin.Context) (interface{}, error) {
if err := c.ShouldBindJSON(&in); err != nil {
return nil, errors.Wrap(err, "json")
}
utils.TrimFields(&in)
st := s.db.GetStorage(in.StorageId)
if st == nil {
return nil, fmt.Errorf("storage id not exist: %v", in.StorageId)

View File

@@ -2,6 +2,7 @@ package server
import (
"polaris/ent"
"polaris/pkg/utils"
"strconv"
"github.com/gin-gonic/gin"
@@ -35,6 +36,7 @@ func (s *Server) AddNotificationClient(c *gin.Context) (interface{}, error) {
if err := c.ShouldBindJSON(&in); err != nil {
return nil, errors.Wrap(err, "json")
}
utils.TrimFields(&in)
err := s.db.AddNotificationClient(in.Name, in.Service, in.Settings, in.Enabled)
if err != nil {

View File

@@ -8,6 +8,7 @@ import (
"polaris/ent"
"polaris/log"
"polaris/pkg/transmission"
"polaris/pkg/utils"
"strconv"
"github.com/gin-gonic/gin"
@@ -32,6 +33,8 @@ func (s *Server) SetSetting(c *gin.Context) (interface{}, error) {
if err := c.ShouldBindJSON(&in); err != nil {
return nil, errors.Wrap(err, "bind json")
}
utils.TrimFields(&in)
log.Infof("set setting input: %+v", in)
if in.TmdbApiKey != "" {
if err := s.db.SetSetting(db.SettingTmdbApiKey, in.TmdbApiKey); err != nil {
@@ -132,6 +135,7 @@ func (s *Server) AddTorznabInfo(c *gin.Context) (interface{}, error) {
if err := c.ShouldBindJSON(&in); err != nil {
return nil, errors.Wrap(err, "bind json")
}
utils.TrimFields(&in)
log.Infof("add indexer settings: %+v", in)
setting := db.TorznabSetting{
@@ -207,6 +211,7 @@ func (s *Server) AddDownloadClient(c *gin.Context) (interface{}, error) {
if err := c.ShouldBindJSON(&in); err != nil {
return nil, errors.Wrap(err, "bind json")
}
utils.TrimFields(&in)
//test connection
_, err := transmission.NewClient(transmission.Config{
URL: in.URL,

View File

@@ -6,6 +6,7 @@ import (
"polaris/log"
"polaris/pkg/storage"
"polaris/pkg/utils"
"strconv"
"github.com/gin-gonic/gin"
@@ -22,6 +23,7 @@ func (s *Server) AddStorage(c *gin.Context) (interface{}, error) {
if err := c.ShouldBindJSON(&in); err != nil {
return nil, errors.Wrap(err, "bind json")
}
utils.TrimFields(&in)
if in.Implementation == "webdav" {
//test webdav