From 1aa4af074bf082b690047b63c6eb9c1130f03c3e Mon Sep 17 00:00:00 2001 From: Bilal Date: Tue, 15 Sep 2020 10:33:23 +0300 Subject: [PATCH] add dailyco feature flag --- .env.sample | 5 ++++- app/controllers/broadcasts_controller.rb | 7 ++++++- config/routes.rb | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.env.sample b/.env.sample index 73c6b07..6b3464d 100644 --- a/.env.sample +++ b/.env.sample @@ -34,4 +34,7 @@ MILLICAST_API_SECRET= MILLICAST_ACCOUNT_ID= # Daily.co live chat API token -DAILYCO_API_KEY= \ No newline at end of file +DAILYCO_API_KEY= + +# Feature flag to switch between Zoom and Daily.co live meeting +DAILYCO_ENABLED= 1 (on) / 0 (off); When Off, Zoom meeting will be used if no override url is present \ No newline at end of file diff --git a/app/controllers/broadcasts_controller.rb b/app/controllers/broadcasts_controller.rb index 5524d0a..3228603 100644 --- a/app/controllers/broadcasts_controller.rb +++ b/app/controllers/broadcasts_controller.rb @@ -114,7 +114,12 @@ class BroadcastsController < ApplicationController end def conference_url_for(broadcast) - broadcast.video_conference_url_override.presence || url_for([broadcast.project, broadcast, :live_meeting]) + if broadcast.video_conference_url_override.present? + broadcast.video_conference_url_override + else + conference_type = ENV['DAILYCO_ENABLED'] == '1' ? :live_meeting : :zoom_meeting + url_for([broadcast.project, broadcast, conference_type]) + end end def log_create_analytics diff --git a/config/routes.rb b/config/routes.rb index f9e4062..2d419f4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -105,6 +105,7 @@ Rails.application.routes.draw do delete :destroy_file end resource :live_meeting, only: [:show] + resource :zoom_meeting, only: [:show] resources :broadcast_recordings, only: [:destroy] end resources :directories, except: [:index] do @@ -150,6 +151,7 @@ Rails.application.routes.draw do end resources :broadcasts, param: :token, only: [:show, :update] do resource :live_meeting, only: [:show] + resource :zoom_meeting, only: [:show] resources :broadcast_recordings, only: [:edit, :update] do resources :broadcast_recording_starrings, only: :create end