Handle misssed errors for encoding and decoding feeds
This commit is contained in:
		@@ -26,27 +26,32 @@ func NewFeed(title, link, desc string) *Feed {
 | 
			
		||||
func SaveFeed(feed *Feed, filename string) error {
 | 
			
		||||
	file, err := os.Create(filename)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("error cmd/feed/rss.go WriteFeed os.Create(): %v", err)
 | 
			
		||||
		return fmt.Errorf("error cmd/feed/rss.go SaveFeed os.Create(): %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	defer file.Close()
 | 
			
		||||
 | 
			
		||||
	encoder := gob.NewEncoder(file)
 | 
			
		||||
	encoder.Encode(feed)
 | 
			
		||||
	err = encoder.Encode(feed)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("error cmd/feed/rss.go SaveFeed encoder.Encode(): %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func OpenFeed(filename string) (*Feed, error) {
 | 
			
		||||
	var feed *Feed
 | 
			
		||||
 | 
			
		||||
	file, err := os.Open(filename)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, fmt.Errorf("error cmd/feed/rss.go ReadFeed os.Open(): %v", err)
 | 
			
		||||
		return nil, fmt.Errorf("error cmd/feed/rss.go OpenFeed os.Open(): %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	defer file.Close()
 | 
			
		||||
 | 
			
		||||
	feed := &Feed{}
 | 
			
		||||
	decoder := gob.NewDecoder(file)
 | 
			
		||||
	decoder.Decode(feed)
 | 
			
		||||
	err = decoder.Decode(feed)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, fmt.Errorf("error cmd/feed/rss.go OpenFeed decoder.Decode(): %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return feed, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user