summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/api/feed.go2
-rw-r--r--internal/ui/feed_update.go2
-rw-r--r--internal/validator/feed.go6
3 files changed, 7 insertions, 3 deletions
diff --git a/internal/api/feed.go b/internal/api/feed.go
index 33973402..3bcc2edc 100644
--- a/internal/api/feed.go
+++ b/internal/api/feed.go
@@ -115,7 +115,7 @@ func (h *handler) updateFeed(w http.ResponseWriter, r *http.Request) {
return
}
- if validationErr := validator.ValidateFeedModification(h.store, userID, &feedModificationRequest); validationErr != nil {
+ if validationErr := validator.ValidateFeedModification(h.store, userID, originalFeed.ID, &feedModificationRequest); validationErr != nil {
json.BadRequest(w, r, validationErr.Error())
return
}
diff --git a/internal/ui/feed_update.go b/internal/ui/feed_update.go
index db5600ae..52cdad3d 100644
--- a/internal/ui/feed_update.go
+++ b/internal/ui/feed_update.go
@@ -65,7 +65,7 @@ func (h *handler) updateFeed(w http.ResponseWriter, r *http.Request) {
UrlRewriteRules: model.OptionalString(feedForm.UrlRewriteRules),
}
- if validationErr := validator.ValidateFeedModification(h.store, loggedUser.ID, feedModificationRequest); validationErr != nil {
+ if validationErr := validator.ValidateFeedModification(h.store, loggedUser.ID, feed.ID, feedModificationRequest); validationErr != nil {
view.Set("errorMessage", validationErr.Translate(loggedUser.Language))
html.OK(w, r, view.Render("edit_feed"))
return
diff --git a/internal/validator/feed.go b/internal/validator/feed.go
index 25f7f1fc..6a353892 100644
--- a/internal/validator/feed.go
+++ b/internal/validator/feed.go
@@ -39,7 +39,7 @@ func ValidateFeedCreation(store *storage.Storage, userID int64, request *model.F
}
// ValidateFeedModification validates feed modification.
-func ValidateFeedModification(store *storage.Storage, userID int64, request *model.FeedModificationRequest) *locale.LocalizedError {
+func ValidateFeedModification(store *storage.Storage, userID, feedID int64, request *model.FeedModificationRequest) *locale.LocalizedError {
if request.FeedURL != nil {
if *request.FeedURL == "" {
return locale.NewLocalizedError("error.feed_url_not_empty")
@@ -48,6 +48,10 @@ func ValidateFeedModification(store *storage.Storage, userID int64, request *mod
if !IsValidURL(*request.FeedURL) {
return locale.NewLocalizedError("error.invalid_feed_url")
}
+
+ if store.AnotherFeedURLExists(userID, feedID, *request.FeedURL) {
+ return locale.NewLocalizedError("error.feed_already_exists")
+ }
}
if request.SiteURL != nil {