Class: Issuable::Callbacks::Milestone
- Inherits:
-
Base
- Object
- Base
- Issuable::Callbacks::Milestone
show all
- Defined in:
- app/services/issuable/callbacks/milestone.rb
Constant Summary
collapse
- ALLOWED_PARAMS =
%i[milestone milestone_id skip_milestone_email].freeze
Instance Method Summary
collapse
Methods inherited from Base
#before_update, #initialize
#can?
Instance Method Details
#after_initialize ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'app/services/issuable/callbacks/milestone.rb', line 8
def after_initialize
params[:milestone_id] = nil if excluded_in_new_type?
return unless params.key?(:milestone_id) && has_permission?(:"set_#{issuable.to_ability_name}_metadata")
@old_milestone = issuable.milestone
if params[:milestone_id].blank? || params[:milestone_id].to_s == IssuableFinder::Params::NONE
issuable.milestone = nil
return
end
resource_group = issuable.project&.group || issuable.try(:namespace)
project_ids = [issuable.project&.id].compact
milestone = MilestonesFinder.new({
project_ids: project_ids,
group_ids: resource_group&.self_and_ancestors&.select(:id),
ids: [params[:milestone_id]]
}).execute.first
issuable.milestone = milestone if milestone
end
|
#after_save_commit ⇒ Object
41
42
43
44
45
|
# File 'app/services/issuable/callbacks/milestone.rb', line 41
def after_save_commit
return unless issuable.previous_changes.include?('milestone_id')
invalidate_milestone_counters
end
|
#after_update_commit ⇒ Object
32
33
34
35
36
37
38
39
|
# File 'app/services/issuable/callbacks/milestone.rb', line 32
def after_update_commit
return unless issuable.previous_changes.include?('milestone_id')
update_usage_data_counters
send_milestone_change_notification
GraphqlTriggers.issuable_milestone_updated(issuable)
end
|