refactor feed updating

This commit is contained in:
nkanaev
2026-05-11 09:59:21 +01:00
parent 391e2dd2c8
commit 450f64605e
5 changed files with 46 additions and 37 deletions

View File

@@ -284,24 +284,27 @@ func (s *Server) handleFeed(c *router.Context) {
c.Out.WriteHeader(http.StatusBadRequest)
return
}
params := storage.UpdateFeedParams{}
if title, ok := body["title"]; ok {
if reflect.TypeOf(title).Kind() == reflect.String {
s.db.RenameFeed(id, title.(string))
t := title.(string)
params.Title = &t
}
}
if f_id, ok := body["folder_id"]; ok {
if f_id == nil {
s.db.UpdateFeedFolder(id, nil)
} else if reflect.TypeOf(f_id).Kind() == reflect.Float64 {
params.UpdateFolderID = true
if reflect.TypeOf(f_id).Kind() == reflect.Float64 {
folderId := int64(f_id.(float64))
s.db.UpdateFeedFolder(id, &folderId)
params.FolderID = &folderId
}
}
if link, ok := body["feed_link"]; ok {
if reflect.TypeOf(link).Kind() == reflect.String {
s.db.UpdateFeedLink(id, link.(string))
l := link.(string)
params.FeedLink = &l
}
}
s.db.UpdateFeed(id, params)
c.Out.WriteHeader(http.StatusOK)
} else if c.Req.Method == "DELETE" {
s.db.DeleteFeed(id)

View File

@@ -80,7 +80,7 @@ func TestFeedIcons(t *testing.T) {
db, _ := storage.New(":memory:")
icon := []byte("test")
feed := db.CreateFeed("", "", "", "", nil)
db.UpdateFeedIcon(feed.Id, &icon)
db.UpdateFeed(feed.Id, storage.UpdateFeedParams{Icon: &icon, UpdateIcon: true})
log.SetOutput(os.Stderr)
recorder := httptest.NewRecorder()