mirror of
https://github.com/zoriya/vex.git
synced 2026-06-06 11:53:46 +00:00
Use etags, fetch dates and save errors
This commit is contained in:
@@ -18,6 +18,7 @@ type Feed struct {
|
||||
SubmitterId uuid.UUID `json:"submitterId"`
|
||||
Submitter *User `json:"submitter,omitempty"`
|
||||
AddedDate time.Time `json:"addedDate"`
|
||||
SyncErorr *string `json:"syncError,omitempty"`
|
||||
etag string
|
||||
lastFetchDate *time.Time
|
||||
}
|
||||
@@ -31,6 +32,7 @@ type FeedDao struct {
|
||||
SubmitterId uuid.UUID `db:"submitter_id"`
|
||||
Submitter *User `db:"submitter"`
|
||||
AddedDate time.Time `db:"added_date"`
|
||||
SyncErorr *string `db:"sync_error"`
|
||||
Etag string
|
||||
LastFetchDate *time.Time `db:"last_fetch_date"`
|
||||
}
|
||||
@@ -119,3 +121,29 @@ func (s FeedService) ListFeeds() ([]Feed, error) {
|
||||
}
|
||||
return Map(ret, func(f FeedDao, _ int) Feed { return f.ToFeed() }), nil
|
||||
}
|
||||
|
||||
func (s FeedService) UpdateSyncStatus(id uuid.UUID, etag string, lastFetchDate *time.Time) error {
|
||||
_, err := s.database.NamedExec(
|
||||
`update feeds set etag = :etag, last_fetch_date = :date, sync_error = :err
|
||||
where id = :id`,
|
||||
map[string]interface{}{
|
||||
"id": id,
|
||||
"etag": etag,
|
||||
"date": lastFetchDate,
|
||||
"err": nil,
|
||||
},
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
func (s FeedService) SaveSyncError(id uuid.UUID, error error) error {
|
||||
_, err := s.database.NamedExec(
|
||||
`update feeds set sync_error = :err
|
||||
where id = :i`,
|
||||
map[string]interface{}{
|
||||
"id": id,
|
||||
"err": error.Error(),
|
||||
},
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user