summaryrefslogtreecommitdiff
path: root/app/services/wiki_pages
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/wiki_pages')
-rw-r--r--app/services/wiki_pages/base_service.rb8
-rw-r--r--app/services/wiki_pages/create_service.rb6
-rw-r--r--app/services/wiki_pages/destroy_service.rb4
-rw-r--r--app/services/wiki_pages/event_create_service.rb4
4 files changed, 18 insertions, 4 deletions
diff --git a/app/services/wiki_pages/base_service.rb b/app/services/wiki_pages/base_service.rb
index 2967684f7bc..fd234630633 100644
--- a/app/services/wiki_pages/base_service.rb
+++ b/app/services/wiki_pages/base_service.rb
@@ -44,7 +44,9 @@ module WikiPages
end
def create_wiki_event(page)
- response = WikiPages::EventCreateService.new(current_user).execute(slug_for_page(page), page, event_action)
+ response = WikiPages::EventCreateService
+ .new(current_user)
+ .execute(slug_for_page(page), page, event_action, fingerprint(page))
log_error(response.message) if response.error?
end
@@ -52,6 +54,10 @@ module WikiPages
def slug_for_page(page)
page.slug
end
+
+ def fingerprint(page)
+ page.sha
+ end
end
end
diff --git a/app/services/wiki_pages/create_service.rb b/app/services/wiki_pages/create_service.rb
index 63107445782..9702876effa 100644
--- a/app/services/wiki_pages/create_service.rb
+++ b/app/services/wiki_pages/create_service.rb
@@ -10,7 +10,11 @@ module WikiPages
execute_hooks(page)
end
- page
+ if page.persisted?
+ ServiceResponse.success(payload: { page: page })
+ else
+ ServiceResponse.error(message: _('Could not create wiki page'), payload: { page: page })
+ end
end
def usage_counter_action
diff --git a/app/services/wiki_pages/destroy_service.rb b/app/services/wiki_pages/destroy_service.rb
index d59c27bb92a..ab5abe1c82b 100644
--- a/app/services/wiki_pages/destroy_service.rb
+++ b/app/services/wiki_pages/destroy_service.rb
@@ -21,5 +21,9 @@ module WikiPages
def event_action
:destroyed
end
+
+ def fingerprint(page)
+ page.wiki.repository.head_commit.sha
+ end
end
end
diff --git a/app/services/wiki_pages/event_create_service.rb b/app/services/wiki_pages/event_create_service.rb
index 0453c90d693..ebfc2414f9e 100644
--- a/app/services/wiki_pages/event_create_service.rb
+++ b/app/services/wiki_pages/event_create_service.rb
@@ -9,11 +9,11 @@ module WikiPages
@author = author
end
- def execute(slug, page, action)
+ def execute(slug, page, action, event_fingerprint)
event = Event.transaction do
wiki_page_meta = WikiPage::Meta.find_or_create(slug, page)
- ::EventCreateService.new.wiki_event(wiki_page_meta, author, action)
+ ::EventCreateService.new.wiki_event(wiki_page_meta, author, action, event_fingerprint)
end
ServiceResponse.success(payload: { event: event })