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