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,
          error_code: error.code,
          billing_url: error.billing_url
        }, status: :forbidden
      end
    end
  end
end
