module Api module V1 class BaseController < ApplicationController rescue_from Teams::EntitlementError, with: :render_entitlement_error rescue_from Streams::IngestUnavailableError, with: :render_ingest_unavailable rescue_from BrandingAttachments::CoverUploadError, with: :render_cover_upload_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, error_code: error.code, billing_url: error.billing_url }, status: :forbidden end def render_ingest_unavailable(error) render json: { error: error.message, error_code: error.code }, status: :service_unavailable end def render_cover_upload_error(error) render json: { error: error.message, error_code: "cover_upload_invalid" }, status: :unprocessable_entity end end end end