yarr/storage/http.go
2020-10-17 12:47:45 +01:00

35 lines
691 B
Go

package storage
type HTTPState struct {
LastModified string
Etag string
}
func (s *Storage) GetHTTPState(url string) *HTTPState {
row := s.db.QueryRow(`
select last_modified, etag
from http_state where url = ?
`, url)
if row == nil {
return nil
}
var state HTTPState
row.Scan(&state.LastModified, &state.Etag)
return &state
}
func (s *Storage) SetHTTPState(url string, state HTTPState) {
_, err := s.db.Exec(`
insert into http_state (url, last_modified, etag)
values (?, ?, ?)
on conflict (url) do update set last_modified = ?, etag = ?`,
url, state.LastModified, state.Etag,
state.LastModified, state.Etag,
)
if err != nil {
s.log.Print(err)
}
}