summaryrefslogtreecommitdiff
path: root/lib/gitlab/integrations/sti_type.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/integrations/sti_type.rb')
-rw-r--r--lib/gitlab/integrations/sti_type.rb66
1 files changed, 0 insertions, 66 deletions
diff --git a/lib/gitlab/integrations/sti_type.rb b/lib/gitlab/integrations/sti_type.rb
deleted file mode 100644
index f347db7bc8c..00000000000
--- a/lib/gitlab/integrations/sti_type.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-# frozen_string_literal: true
-
-module Gitlab
- module Integrations
- class StiType < ActiveRecord::Type::String
- NAMESPACED_INTEGRATIONS = %w[
- Asana Assembla Bamboo Bugzilla Buildkite Campfire Confluence CustomIssueTracker Datadog
- Discord DroneCi EmailsOnPush Ewm ExternalWiki Flowdock HangoutsChat Harbor Irker Jenkins Jira Mattermost
- MattermostSlashCommands MicrosoftTeams MockCi MockMonitoring Packagist PipelinesEmail Pivotaltracker
- Prometheus Pushover Redmine Shimo Slack SlackSlashCommands Teamcity UnifyCircuit WebexTeams Youtrack Zentao
- ].to_set.freeze
-
- def self.namespaced_integrations
- NAMESPACED_INTEGRATIONS
- end
-
- def cast(value)
- new_cast(value) || super
- end
-
- def serialize(value)
- new_serialize(value) || super
- end
-
- def deserialize(value)
- value
- end
-
- def changed?(original_value, value, _new_value_before_type_cast)
- original_value != serialize(value)
- end
-
- def changed_in_place?(original_value_for_database, value)
- original_value_for_database != serialize(value)
- end
-
- private
-
- def new_cast(value)
- value = prepare_value(value)
- return unless value
-
- stripped_name = value.delete_suffix('Service')
- return unless self.class.namespaced_integrations.include?(stripped_name)
-
- "Integrations::#{stripped_name}"
- end
-
- def new_serialize(value)
- value = prepare_value(value)
- return unless value&.starts_with?('Integrations::')
-
- "#{value.delete_prefix('Integrations::')}Service"
- end
-
- # Returns value cast to a `String`, or `nil` if value is `nil`.
- def prepare_value(value)
- return value if value.nil? || value.is_a?(String)
-
- value.to_s
- end
- end
- end
-end
-
-Gitlab::Integrations::StiType.prepend_mod