diff options
Diffstat (limited to 'reader/feed/handler.go')
-rw-r--r-- | reader/feed/handler.go | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/reader/feed/handler.go b/reader/feed/handler.go index c046ad9..c6dc448 100644 --- a/reader/feed/handler.go +++ b/reader/feed/handler.go @@ -18,11 +18,12 @@ import ( ) var ( - errRequestFailed = "Unable to execute request: %v" - errServerFailure = "Unable to fetch feed (statusCode=%d)." - errDuplicate = "This feed already exists (%s)." - errNotFound = "Feed %d not found" - errEncoding = "Unable to normalize encoding: %v." + errRequestFailed = "Unable to execute request: %v" + errServerFailure = "Unable to fetch feed (statusCode=%d)." + errDuplicate = "This feed already exists (%s)." + errNotFound = "Feed %d not found" + errEncoding = "Unable to normalize encoding: %v." + errCategoryNotFound = "Category not found for this user." ) // Handler contains all the logic to create and refresh feeds. @@ -34,6 +35,10 @@ type Handler struct { func (h *Handler) CreateFeed(userID, categoryID int64, url string) (*model.Feed, error) { defer helper.ExecutionTime(time.Now(), fmt.Sprintf("[Handler:CreateFeed] feedUrl=%s", url)) + if !h.store.CategoryExists(userID, categoryID) { + return nil, errors.NewLocalizedError(errCategoryNotFound) + } + client := http.NewClient(url) response, err := client.Get() if err != nil { |