From dda9114692c712c3139b156d968db66bff6ccabc Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Thu, 8 Feb 2018 18:16:54 -0800 Subject: Improve error handling for HTTP client --- reader/feed/handler.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'reader/feed/handler.go') 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) -- cgit v1.2.3