aboutsummaryrefslogtreecommitdiffhomepage
path: root/reader
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-02-08 18:16:54 -0800
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-02-08 18:16:54 -0800
commitdda9114692c712c3139b156d968db66bff6ccabc (patch)
tree35619b483f175dddd94b1c86225c1a486235f53b /reader
parent16c2dc4a8c2cdb49d18205835e6dd77a2a79c4b9 (diff)
Improve error handling for HTTP client
Diffstat (limited to 'reader')
-rw-r--r--reader/feed/handler.go11
-rw-r--r--reader/subscription/finder.go3
2 files changed, 13 insertions, 1 deletions
diff --git a/reader/feed/handler.go b/reader/feed/handler.go
index cc71256..d6ac84e 100644
--- a/reader/feed/handler.go
+++ b/reader/feed/handler.go
@@ -44,6 +44,9 @@ func (h *Handler) CreateFeed(userID, categoryID int64, url string, crawler bool)
client := http.NewClient(url)
response, err := client.Get()
if err != nil {
+ if _, ok := err.(errors.LocalizedError); ok {
+ return nil, err
+ }
return nil, errors.NewLocalizedError(errRequestFailed, err)
}
@@ -120,7 +123,13 @@ func (h *Handler) RefreshFeed(userID, feedID int64) error {
client := http.NewClientWithCacheHeaders(originalFeed.FeedURL, originalFeed.EtagHeader, originalFeed.LastModifiedHeader)
response, err := client.Get()
if err != nil {
- customErr := errors.NewLocalizedError(errRequestFailed, err)
+ var customErr errors.LocalizedError
+ if lerr, ok := err.(errors.LocalizedError); ok {
+ customErr = lerr
+ } else {
+ customErr = errors.NewLocalizedError(errRequestFailed, err)
+ }
+
originalFeed.ParsingErrorCount++
originalFeed.ParsingErrorMsg = customErr.Error()
h.store.UpdateFeed(originalFeed)
diff --git a/reader/subscription/finder.go b/reader/subscription/finder.go
index 8e361b7..4e2879a 100644
--- a/reader/subscription/finder.go
+++ b/reader/subscription/finder.go
@@ -33,6 +33,9 @@ func FindSubscriptions(websiteURL string) (Subscriptions, error) {
client := http.NewClient(websiteURL)
response, err := client.Get()
if err != nil {
+ if _, ok := err.(errors.LocalizedError); ok {
+ return nil, err
+ }
return nil, errors.NewLocalizedError(errConnectionFailure, err)
}