Add ability to display feed
This commit is contained in:
@ -102,16 +102,28 @@ func (db *DB) ChangePassword(id int64, oldPass, newPass string) error {
|
||||
return fmt.Errorf("error creating password hash: %v", err)
|
||||
}
|
||||
|
||||
updateQuery := `
|
||||
query := `
|
||||
UPDATE users SET
|
||||
password = ?
|
||||
WHERE
|
||||
id = ?
|
||||
`
|
||||
_, err = db.Exec(updateQuery, string(newHashedPass), id)
|
||||
_, err = db.Exec(query, string(newHashedPass), id)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error updating password in DB: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *DB) CountEntries() (int64, error) {
|
||||
var count int64
|
||||
|
||||
query := `SELECT COUNT(*) FROM users`
|
||||
row := db.QueryRow(query)
|
||||
if err := row.Scan(&count); err != nil {
|
||||
return 0, fmt.Errorf("error counting rows in user DB: %v", err)
|
||||
}
|
||||
|
||||
return count, nil
|
||||
}
|
||||
|
56
cmd/data/rss.go
Normal file
56
cmd/data/rss.go
Normal file
@ -0,0 +1,56 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"encoding/gob"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/gorilla/feeds"
|
||||
)
|
||||
|
||||
type Feed struct {
|
||||
feeds.Feed
|
||||
}
|
||||
|
||||
func NewFeed(title, link, desc string) *Feed {
|
||||
return &Feed{
|
||||
Feed: feeds.Feed{
|
||||
Title: title,
|
||||
Link: &feeds.Link{Href: link},
|
||||
Description: desc,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func OpenFeed(filename string) (*Feed, error) {
|
||||
file, err := os.Open(filename)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error opening file %v: %v", filename, err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
feed := &Feed{}
|
||||
decoder := gob.NewDecoder(file)
|
||||
err = decoder.Decode(feed)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error decoding file %v: %v", filename, err)
|
||||
}
|
||||
|
||||
return feed, nil
|
||||
}
|
||||
|
||||
func (feed *Feed) Save(filename string) error {
|
||||
file, err := os.Create(filename)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error creating file %v: %v", filename, err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
encoder := gob.NewEncoder(file)
|
||||
err = encoder.Encode(feed)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error encoding file %v: %v", filename, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user