From ac857ee3d07e437aacd38ed31aefa2ab60a7c037 Mon Sep 17 00:00:00 2001 From: Jan Kessler Date: Mon, 29 Apr 2024 12:37:43 +0200 Subject: [PATCH] finalized DB migration for the server tags options --- ...0240423162700_create_server_tags_option.rb | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/db/data/20240423162700_create_server_tags_option.rb b/db/data/20240423162700_create_server_tags_option.rb index 0afeae7ab8a..558a4f85172 100644 --- a/db/data/20240423162700_create_server_tags_option.rb +++ b/db/data/20240423162700_create_server_tags_option.rb @@ -18,38 +18,44 @@ class CreateServerTagsOption < ActiveRecord::Migration[7.0] def up - MeetingOption.create(name: 'serverTag', default_value: '') unless MeetingOption.exists?(name: 'serverTag') - unless RoomsConfiguration.exists?(meeting_option: MeetingOption.find_by(name: 'serverTag'), provider: 'greenlight') - RoomsConfiguration.create(meeting_option: MeetingOption.find_by(name: 'serverTag'), value: 'optional', provider: 'greenlight') + MeetingOption.create!(name: 'serverTag', default_value: '') unless MeetingOption.exists?(name: 'serverTag') + tag_option = MeetingOption.find_by!(name: 'serverTag') + unless RoomsConfiguration.exists?(meeting_option: tag_option, provider: 'greenlight') + RoomsConfiguration.create!(meeting_option: tag_option, value: 'optional', provider: 'greenlight') end Tenant.all.each do |tenant| - unless RoomsConfiguration.exists?(meeting_option: MeetingOption.find_by(name: 'serverTag'), provider: tenant.name) - RoomsConfiguration.create(meeting_option: MeetingOption.find_by(name: 'serverTag'), value: 'optional', provider: tenant.name) + unless RoomsConfiguration.exists?(meeting_option: tag_option, provider: tenant.name) + RoomsConfiguration.create!(meeting_option: tag_option, value: 'optional', provider: tenant.name) end end + Room.find_each { |room| RoomMeetingOption.find_or_create_by!(room: room, meeting_option: tag_option) } - MeetingOption.create(name: 'serverTagRequired', default_value: 'false') unless MeetingOption.exists?(name: 'serverTagRequired') - unless RoomsConfiguration.exists?(meeting_option: MeetingOption.find_by(name: 'serverTagRequired'), provider: 'greenlight') - RoomsConfiguration.create(meeting_option: MeetingOption.find_by(name: 'serverTagRequired'), value: 'optional', provider: 'greenlight') + MeetingOption.create!(name: 'serverTagRequired', default_value: 'false') unless MeetingOption.exists?(name: 'serverTagRequired') + tag_required_option = MeetingOption.find_by!(name: 'serverTagRequired') + unless RoomsConfiguration.exists?(meeting_option: tag_required_option, provider: 'greenlight') + RoomsConfiguration.create!(meeting_option: tag_required_option, value: 'optional', provider: 'greenlight') end Tenant.all.each do |tenant| - unless RoomsConfiguration.exists?(meeting_option: MeetingOption.find_by(name: 'serverTagRequired'), provider: tenant.name) - RoomsConfiguration.create(meeting_option: MeetingOption.find_by(name: 'serverTagRequired'), value: 'optional', provider: tenant.name) + unless RoomsConfiguration.exists?(meeting_option: tag_required_option, provider: tenant.name) + RoomsConfiguration.create!(meeting_option: tag_required_option, value: 'optional', provider: tenant.name) + end + end + Room.find_each do |room| + unless RoomMeetingOption.exists?(room: room, meeting_option: tag_required_option) + RoomMeetingOption.create!(room: room, meeting_option: tag_required_option, value: 'false') end end end def down - Tenant.all.each do |tenant| - RoomsConfiguration.find_by(meeting_option: MeetingOption.find_by(name: 'serverTag'), provider: tenant.name).destroy - end - RoomsConfiguration.find_by(meeting_option: MeetingOption.find_by(name: 'serverTag'), provider: 'greenlight').destroy - MeetingOption.find_by(name: 'serverTag').destroy + tag_option = MeetingOption.find_by!(name: 'serverTag') + RoomMeetingOption.destroy_by(meeting_option: tag_option) + RoomsConfiguration.destroy_by(meeting_option: tag_option) + tag_option.destroy - Tenant.all.each do |tenant| - RoomsConfiguration.find_by(meeting_option: MeetingOption.find_by(name: 'serverTagRequired'), provider: tenant.name).destroy - end - RoomsConfiguration.find_by(meeting_option: MeetingOption.find_by(name: 'serverTagRequired'), provider: 'greenlight').destroy - MeetingOption.find_by(name: 'serverTagRequired').destroy + tag_required_option = MeetingOption.find_by!(name: 'serverTagRequired') + RoomMeetingOption.destroy_by(meeting_option: tag_required_option) + RoomsConfiguration.destroy_by(meeting_option: tag_required_option) + tag_required_option.destroy end end