From 71bf7e43580377a9bb98c6444c32e95b53602f12 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Fri, 24 Nov 2017 22:29:20 -0800 Subject: Improve API --- reader/feed/handler.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'reader/feed') 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 { -- cgit v1.2.3