offline-twitter/persistence/retweet_queries.go

41 lines
954 B
Go
Raw Normal View History

2021-08-16 20:37:35 -07:00
package persistence
import (
2022-03-13 16:13:16 -07:00
"fmt"
2021-08-16 20:37:35 -07:00
"offline_twitter/scraper"
)
/**
* Save a Retweet. Do nothing if it already exists, because none of its parameters are modifiable.
*/
func (p Profile) SaveRetweet(r scraper.Retweet) error {
_, err := p.DB.Exec(`
insert into retweets (retweet_id, tweet_id, retweeted_by, retweeted_at)
values (?, ?, ?, ?)
on conflict do nothing
`,
r.RetweetID, r.TweetID, r.RetweetedByID, r.RetweetedAt.Unix(),
)
2022-03-13 16:13:16 -07:00
if err != nil {
return fmt.Errorf("Error executing SaveRetweet(%d):\n %w", r.RetweetID, err)
}
return nil
2021-08-16 20:37:35 -07:00
}
/**
* Retrieve a Retweet by ID
*/
func (p Profile) GetRetweetById(id scraper.TweetID) (scraper.Retweet, error) {
2022-03-06 19:17:43 -08:00
var r scraper.Retweet
err := p.DB.Get(&r, `
2021-08-16 20:37:35 -07:00
select retweet_id, tweet_id, retweeted_by, retweeted_at
from retweets
where retweet_id = ?
2022-03-06 19:17:43 -08:00
`, id)
2022-03-13 16:13:16 -07:00
if err != nil {
return r, fmt.Errorf("Error executing GetRetweetById(%d):\n %w", id, err)
}
return r, nil
2021-08-16 20:37:35 -07:00
}