diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2014-12-04 14:22:57 +0100 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2015-01-12 19:48:45 +0100 |
commit | fc08a10dba559a93427b6ef31b33c45cd2194c40 (patch) | |
tree | ec9f2d2509162ca3b8c8007b3e656242c961f916 /app/models/project.rb | |
parent | 31735615971642f74a9d84b153e5049782152b43 (diff) | |
download | gitlab-ci-fc08a10dba559a93427b6ef31b33c45cd2194c40.tar.gz |
Transplanted project notifications from GitLab
Diffstat (limited to 'app/models/project.rb')
-rw-r--r-- | app/models/project.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 75be51c..9c93d08 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -39,6 +39,10 @@ class Project < ActiveRecord::Base has_many :web_hooks, dependent: :destroy has_many :jobs, dependent: :destroy + # Project services + has_many :services, dependent: :destroy + has_one :slack_service, dependent: :destroy + accepts_nested_attributes_for :jobs, allow_destroy: true # @@ -178,4 +182,30 @@ ls -la prefix + auth end end + + def available_services_names + %w(slack) + end + + def build_missing_services + available_services_names.each do |service_name| + service = services.find { |service| service.to_param == service_name } + + # If service is available but missing in db + # we should create an instance. Ex `create_gitlab_ci_service` + service = self.send :"create_#{service_name}_service" if service.nil? + end + end + + def execute_services(data) + services.each do |service| + + # Call service hook only if it is active + begin + service.execute(data) if service.active + rescue => e + logger.error(e) + end + end + end end |