2014-04-02 10:54:41 +00:00
|
|
|
module Issues
|
2014-04-02 16:55:23 +00:00
|
|
|
class UpdateService < Issues::BaseService
|
2014-04-02 10:54:41 +00:00
|
|
|
def execute(issue)
|
2014-04-02 12:50:50 +00:00
|
|
|
state = params.delete('state_event')
|
|
|
|
|
|
|
|
case state
|
|
|
|
when 'reopen'
|
|
|
|
Issues::ReopenService.new(project, current_user, {}).execute(issue)
|
|
|
|
when 'close'
|
|
|
|
Issues::CloseService.new(project, current_user, {}).execute(issue)
|
|
|
|
end
|
|
|
|
|
|
|
|
if params.present? && issue.update_attributes(params)
|
2014-04-02 10:54:41 +00:00
|
|
|
issue.reset_events_cache
|
|
|
|
|
2014-04-02 13:08:49 +00:00
|
|
|
if issue.previous_changes.include?('assignee_id')
|
2014-04-02 12:38:24 +00:00
|
|
|
notification_service.reassigned_issue(issue, current_user)
|
2014-04-02 10:54:41 +00:00
|
|
|
create_assignee_note(issue)
|
|
|
|
end
|
|
|
|
|
|
|
|
issue.notice_added_references(issue.project, current_user)
|
|
|
|
execute_hooks(issue)
|
|
|
|
end
|
|
|
|
|
|
|
|
issue
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|