diff --git a/backend/app/controllers/api/v1/base_controller.rb b/backend/app/controllers/api/v1/base_controller.rb index 95536eb..37cd38f 100644 --- a/backend/app/controllers/api/v1/base_controller.rb +++ b/backend/app/controllers/api/v1/base_controller.rb @@ -2,9 +2,17 @@ module Api module V1 class BaseController < ApplicationController rescue_from Teams::EntitlementError, with: :render_entitlement_error + rescue_from Youtube::BroadcastService::Error, with: :render_youtube_error private + def render_youtube_error(error) + render json: { + error: "YouTube: #{error.message}", + error_code: "youtube_api_error" + }, status: :unprocessable_entity + end + def render_entitlement_error(error) render json: { error: error.message, diff --git a/backend/app/services/youtube/oauth_refresh.rb b/backend/app/services/youtube/oauth_refresh.rb index 15e89d8..ac23b8f 100644 --- a/backend/app/services/youtube/oauth_refresh.rb +++ b/backend/app/services/youtube/oauth_refresh.rb @@ -7,7 +7,7 @@ module Youtube end def apply!(service) - refresh! if @credential.expired? + refresh! if @credential.refresh_token.present? && (@credential.access_token.blank? || @credential.expired?) service.authorization = @credential.access_token service end