Sha256: fce5aa997799f8215c4f9bc03dd5d96907da72bbbcb5206ff042d3ad11b254a0

Contents?: true

Size: 1.83 KB

Versions: 23

Compression:

Stored size: 1.83 KB

Contents

# frozen_string_literal: true

# :reek:UtilityFunction

module RubyRabbitmqJanus
  module Models
    # Add method for JanusInstance model
    module JanusInstanceMethods
      extend ActiveSupport::Concern

      # Class methods for JanusInstance model
      module ClassMethods
        # Disable an instance
        def disable(session_id)
          JanusInstance.find_by(session: session_id).set(enable: false)
        end

        # Clean all instance disabled
        def destroys
          JanusInstance.where(enable: false).delete_all
        end

        # Search a record by instance number
        def find_by_instance(instance_search)
          JanusInstance.find_by(instance: instance_search)
        rescue
          false
        end

        # Search a record by session number
        def find_by_session(session_search)
          JanusInstance.find_by(session: session_search)
        rescue
          nil
        end

        # Get all instance active
        def enabled
          JanusInstance.where(enable: true)
        end

        # Get all instance not active
        def disabled
          JanusInstance.where(enable: false)
        end
      end

      def create_keepalive
        ::Log.info 'Create session'
        janus_instance = keepalive_object_new
        set(session: janus_instance.session, enable: true)
      end

      def stop_keepalive
        ::Log.info 'Destroy session'
        unset(%I[thread thread_adm session])
        set(enable: false)
      end

      private

      def search_initializer(options)
        if File.basename($PROGRAM_NAME) == 'rake'
          ::RRJ.start_transaction(options) do |transaction|
            yield(transaction)
          end
        else
          ::RRJ.start_transaction(true, options) do |transaction|
            yield(transaction)
          end
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
ruby_rabbitmq_janus-2.7.1 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.7.1.pre.274 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.7.0.pre.272 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.7.0 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.7.0.pre.269 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.7.0.pre.267 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.263 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.261 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.260 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.259 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.258 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.247 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.246 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.244 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.240 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.239 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.238 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.233 lib/rrj/models/concerns/janus_instance_methods.rb
ruby_rabbitmq_janus-2.6.0.pre.229 lib/rrj/models/concerns/janus_instance_methods.rb