summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlena Horal-Koretska <ohoralkoretska@gitlab.com>2019-08-09 14:32:57 +0300
committerOlena Horal-Koretska <ohoralkoretska@gitlab.com>2019-08-09 14:52:13 +0300
commita32a30783fff15ee906c2c053e1e6cde59cbaff7 (patch)
tree50487e7b1d3d72a01cae59b05b04d94eaf4a39d5
parent400da76d5e6db4c9ea8180d20366e04dc4f36651 (diff)
downloadgitlab-ce-63450-Zoom-service-intagration-as-project-service.tar.gz
Zoom integration - Add Zoom Service as project service63450-Zoom-service-intagration-as-project-service
-rw-r--r--app/models/project.rb1
-rw-r--r--app/models/project_services/zoom_service.rb43
-rw-r--r--app/models/service.rb4
-rw-r--r--lib/api/helpers/services_helpers.rb17
4 files changed, 64 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 960795b73cb..0ed9e2cb47a 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -147,6 +147,7 @@ class Project < ApplicationRecord
has_one :flowdock_service
has_one :assembla_service
has_one :asana_service
+ has_one :zoom_service
has_one :mattermost_slash_commands_service
has_one :mattermost_service
has_one :slack_slash_commands_service
diff --git a/app/models/project_services/zoom_service.rb b/app/models/project_services/zoom_service.rb
new file mode 100644
index 00000000000..5addbfdb72c
--- /dev/null
+++ b/app/models/project_services/zoom_service.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+class ZoomService < Service
+ prop_accessor :api_key, :api_secret
+ validates :api_key, :api_secret, presence: true, if: :activated?
+ def title
+ 'Zoom'
+ end
+
+ def description
+ s_('ZoomService|Integrating Zoom allows you to embed zoom content in GitLab issues')
+ end
+
+ def help
+ 'Embed Zoom content in GitLab issues'
+ end
+
+ def self.to_param
+ 'zoom'
+ end
+
+ def fields
+ [
+ {
+ type: 'text',
+ name: 'api_key',
+ placeholder: s_('ZoomService|Api key placeholder...'),
+ required: true
+ },
+ {
+ type: 'text',
+ name: 'api_secret',
+ placeholder: s_('ZoomService|Secret key placeholder...'),
+ required: true
+ }
+ ]
+ end
+
+ def self.supported_events
+ %w()
+ end
+
+end
diff --git a/app/models/service.rb b/app/models/service.rb
index 752467622f2..a0cee39cbb6 100644
--- a/app/models/service.rb
+++ b/app/models/service.rb
@@ -280,6 +280,10 @@ class Service < ApplicationRecord
service_names += %w[mock_ci mock_deployment mock_monitoring]
end
+ if Feature.enabled?(:zoom_integration)
+ service_names += %w[zoom]
+ end
+
service_names.sort_by(&:downcase)
end
diff --git a/lib/api/helpers/services_helpers.rb b/lib/api/helpers/services_helpers.rb
index c4ecf55969c..43618745fb8 100644
--- a/lib/api/helpers/services_helpers.rb
+++ b/lib/api/helpers/services_helpers.rb
@@ -170,6 +170,20 @@ module API
desc: 'Comma-separated list of branches which will be automatically inspected. Leave blank to include all branches'
}
],
+ 'zoom' => [
+ {
+ required: true,
+ name: :api_key,
+ type: String,
+ desc: 'Zoom api key'
+ },
+ {
+ required: true,
+ name: :api_secret,
+ type: String,
+ desc: 'Zoom secret key'
+ }
+ ],
'assembla' => [
{
required: true,
@@ -752,7 +766,8 @@ module API
::SlackService,
::MattermostService,
::MicrosoftTeamsService,
- ::TeamcityService
+ ::TeamcityService,
+ ::ZoomService
]
end