summaryrefslogtreecommitdiff
path: root/db/migrate/20141006143943_move_slack_service_to_webhook.rb
blob: 42e88d6d6e3904102d8a89612823bb1a7eaced38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# rubocop:disable all
class MoveSlackServiceToWebhook < ActiveRecord::Migration

  DOWNTIME = true
  DOWNTIME_REASON = 'Move old fields "token" and "subdomain" to one single field "webhook"'

  def change
    SlackNotificationService.all.each do |slack_service|
      if ["token", "subdomain"].all? { |property| slack_service.properties.key? property }
        token = slack_service.properties['token']
        subdomain = slack_service.properties['subdomain']
        webhook = "https://#{subdomain}.slack.com/services/hooks/incoming-webhook?token=#{token}"
        slack_service.properties['webhook'] = webhook
        slack_service.properties.delete('token')
        slack_service.properties.delete('subdomain')
        # Room is configured on the Slack side
        slack_service.properties.delete('room')
        slack_service.save(validate: false)
      end
    end
  end
end