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") | 	store.RenameFeed(feed.Id, "newtitle") | ||||||
| 	log.Print(store.ListFeeds()) | 	log.Print(store.ListFeeds()) | ||||||
| 	*/ | 	*/ | ||||||
| 	/* | 	/*; | ||||||
| 	items := make([]storage.Item, 3, 3) | 	items := make([]storage.Item, 3, 3) | ||||||
| 	items = append(items, storage.Item{ | 	items = append(items, storage.Item{ | ||||||
| 		Id: "id", | 		Id: "id", | ||||||
| @@ -65,5 +65,6 @@ func main() { | |||||||
| 		Image: "image", | 		Image: "image", | ||||||
| 	}) | 	}) | ||||||
| 	log.Print(store.CreateItems(items)) | 	log.Print(store.CreateItems(items)) | ||||||
|  | 	log.Print(store.ListItems()) | ||||||
| 	*/ | 	*/ | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,5 +1,7 @@ | |||||||
| package storage | package storage | ||||||
|  |  | ||||||
|  | import "fmt" | ||||||
|  |  | ||||||
| type ItemStatus int | type ItemStatus int | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
| @@ -56,3 +58,61 @@ func (s *Storage) CreateItems(items []Item) bool { | |||||||
| 	} | 	} | ||||||
| 	return true | 	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