Class: WikiPages::UpdateService
Constant Summary
collapse
- UpdateError =
Class.new(StandardError)
Instance Attribute Summary
#container, #current_user, #group, #params, #project
Instance Method Summary
collapse
#track_internal_event
#group_container?, #initialize, #namespace_container?, #project_container?, #project_group, #root_ancestor
#deny_visibility_level, #event_service, #log_error, #log_info, #notification_service, #system_hook_service, #todo_service, #visibility_level
#can?, #can_all?, #can_any?
Instance Method Details
#event_action ⇒ Object
35
36
37
|
# File 'app/services/wiki_pages/update_service.rb', line 35
def event_action
:updated
end
|
#execute(page) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'app/services/wiki_pages/update_service.rb', line 7
def execute(page)
@old_slug = page.slug
if page.update(@params)
execute_hooks(page)
ServiceResponse.success(payload: { page: page })
else
message = page.template? ? _('Could not update wiki template') : _('Could not update wiki page')
raise UpdateError, message
end
rescue UpdateError, WikiPage::PageChangedError, WikiPage::PageRenameError => e
page.update_attributes(@params)
ServiceResponse.error(
message: e.message,
payload: { page: page }
)
end
|
#external_action ⇒ Object
31
32
33
|
# File 'app/services/wiki_pages/update_service.rb', line 31
def external_action
'update'
end
|
#internal_event_name ⇒ Object
27
28
29
|
# File 'app/services/wiki_pages/update_service.rb', line 27
def internal_event_name
'update_wiki_page'
end
|
#slug_for_page(page) ⇒ Object
39
40
41
|
# File 'app/services/wiki_pages/update_service.rb', line 39
def slug_for_page(page)
@old_slug.presence || super
end
|