mirror of
				https://github.com/nkanaev/yarr.git
				synced 2025-10-29 22:29:59 +00:00 
			
		
		
		
	item list functions
This commit is contained in:
		
							
								
								
									
										3
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								main.go
									
									
									
									
									
								
							| @@ -23,7 +23,7 @@ func main() { | ||||
| 	store.RenameFeed(feed.Id, "newtitle") | ||||
| 	log.Print(store.ListFeeds()) | ||||
| 	*/ | ||||
| 	/* | ||||
| 	/*; | ||||
| 	items := make([]storage.Item, 3, 3) | ||||
| 	items = append(items, storage.Item{ | ||||
| 		Id: "id", | ||||
| @@ -65,5 +65,6 @@ func main() { | ||||
| 		Image: "image", | ||||
| 	}) | ||||
| 	log.Print(store.CreateItems(items)) | ||||
| 	log.Print(store.ListItems()) | ||||
| 	*/ | ||||
| } | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| package storage | ||||
|  | ||||
| import "fmt" | ||||
|  | ||||
| type ItemStatus int | ||||
|  | ||||
| const ( | ||||
| @@ -56,3 +58,61 @@ func (s *Storage) CreateItems(items []Item) bool { | ||||
| 	} | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| func itemQuery(s *Storage, cond string, v ...interface{}) []Item { | ||||
| 	result := make([]Item, 0, 0) | ||||
| 	query := fmt.Sprintf(` | ||||
| 		select | ||||
| 			id, feed_id, title, link, description, | ||||
| 			content, author, date, date_updated, status, image | ||||
| 		from items | ||||
| 		where %s`, cond) | ||||
| 	s.log.Print(query) | ||||
| 	rows, err := s.db.Query(query, v...) | ||||
| 	if err != nil { | ||||
| 		s.log.Print(err) | ||||
| 		return result | ||||
| 	} | ||||
| 	for rows.Next() { | ||||
| 		var x Item | ||||
| 		err = rows.Scan( | ||||
| 			&x.Id, | ||||
| 			&x.FeedId, | ||||
| 			&x.Title, | ||||
| 			&x.Link, | ||||
| 			&x.Description, | ||||
| 			&x.Content, | ||||
| 			&x.Author, | ||||
| 			&x.Date, | ||||
| 			&x.DateUpdated, | ||||
| 			&x.Status, | ||||
| 			&x.Image, | ||||
| 		) | ||||
| 		if err != nil { | ||||
| 			s.log.Print(err) | ||||
| 			return result | ||||
| 		} | ||||
| 		result = append(result, x) | ||||
| 	} | ||||
| 	return result | ||||
| } | ||||
|  | ||||
| func (s *Storage) ListItems() []Item { | ||||
| 	return itemQuery(s, `1`) | ||||
| } | ||||
|  | ||||
| func (s *Storage) ListFolderItems(folder_id int64) []Item { | ||||
| 	return itemQuery(s, `folder_id = ?`, folder_id) | ||||
| } | ||||
|  | ||||
| func (s *Storage) ListFolderItemsFiltered(folder_id int64, status ItemStatus) []Item { | ||||
| 	return itemQuery(s, `folder_id = ? and status = ?`, folder_id, status) | ||||
| } | ||||
|  | ||||
| func (s *Storage) ListFeedItems(feed_id int64) []Item { | ||||
| 	return itemQuery(s, `feed_id = ?`, feed_id) | ||||
| } | ||||
|  | ||||
| func (s *Storage) ListFeedItemsFiltered(feed_id int64, status ItemStatus) []Item { | ||||
| 	return itemQuery(s, `feed_id = ? and status = ?`, feed_id, status) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user