mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 00:33:14 +00:00
fix feed.folder_id
This commit is contained in:
parent
27d38987a5
commit
718116ff67
@ -16,6 +16,7 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
@ -133,11 +134,6 @@ type NewFeed struct {
|
||||
FolderID *int64 `json:"folder_id,omitempty"`
|
||||
}
|
||||
|
||||
type UpdateFeed struct {
|
||||
Title *string `json:"title,omitempty"`
|
||||
FolderID *int64 `json:"folder_id,omitempty"`
|
||||
}
|
||||
|
||||
func FeedRefreshHandler(rw http.ResponseWriter, req *http.Request) {
|
||||
if req.Method == "POST" {
|
||||
handler(req).fetchAllFeeds()
|
||||
@ -289,17 +285,29 @@ func FeedHandler(rw http.ResponseWriter, req *http.Request) {
|
||||
return
|
||||
}
|
||||
if req.Method == "PUT" {
|
||||
var body UpdateFeed
|
||||
feed := db(req).GetFeed(id)
|
||||
if feed == nil {
|
||||
rw.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
body := make(map[string]interface{})
|
||||
if err := json.NewDecoder(req.Body).Decode(&body); err != nil {
|
||||
log.Print(err)
|
||||
rw.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
if body.Title != nil {
|
||||
db(req).RenameFeed(id, *body.Title)
|
||||
if title, ok := body["title"]; ok {
|
||||
if reflect.TypeOf(title).Kind() == reflect.String {
|
||||
db(req).RenameFeed(id, title.(string))
|
||||
}
|
||||
}
|
||||
if body.FolderID != nil {
|
||||
db(req).UpdateFeedFolder(id, *body.FolderID)
|
||||
if f_id, ok := body["folder_id"]; ok {
|
||||
if f_id == nil {
|
||||
db(req).UpdateFeedFolder(id, nil)
|
||||
} else if reflect.TypeOf(f_id).Kind() == reflect.Float64 {
|
||||
folderId := int64(f_id.(float64))
|
||||
db(req).UpdateFeedFolder(id, &folderId)
|
||||
}
|
||||
}
|
||||
rw.WriteHeader(http.StatusOK)
|
||||
} else if req.Method == "DELETE" {
|
||||
|
@ -51,8 +51,8 @@ func (s *Storage) RenameFeed(feedId int64, newTitle string) bool {
|
||||
return err == nil
|
||||
}
|
||||
|
||||
func (s *Storage) UpdateFeedFolder(feedId int64, newFolderId int64) bool {
|
||||
_, err := s.db.Exec(`update feeds set folder_id = ? where id = ?`, intOrNil(newFolderId), feedId)
|
||||
func (s *Storage) UpdateFeedFolder(feedId int64, newFolderId *int64) bool {
|
||||
_, err := s.db.Exec(`update feeds set folder_id = ? where id = ?`, newFolderId, feedId)
|
||||
return err == nil
|
||||
}
|
||||
|
||||
|
@ -89,10 +89,3 @@ func New(path string, logger *log.Logger) (*Storage, error) {
|
||||
}
|
||||
return &Storage{db: db, log: logger}, nil
|
||||
}
|
||||
|
||||
func intOrNil(id int64) interface{} {
|
||||
if id == 0 {
|
||||
return nil
|
||||
}
|
||||
return id
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user