Sha256: 66c4f5167de8ef84dca45cdf307c25b12063eabbbca6da5f2ab214f5a015f10f

Contents?: true

Size: 908 Bytes

Versions: 16

Compression:

Stored size: 908 Bytes

Contents

module Rhoconnect
  class SourceJob
    class << self
      attr_accessor :queue
    end

    def self.perform(job_type,source_id,app_id,user_id,params)
      source = Source.load(source_id,{:app_id => app_id,:user_id => user_id})
      params ||= {}

      case job_type.to_sym
      when :query 
        handler_sync = lambda { @model.query(params[:query])}
        @model = Rhoconnect::Model::Base.create(source)
        source_sync = Rhoconnect::Handler::Query::Engine.new(@model, handler_sync, params)
        source_sync.run_query
      when :cud
        handler_cud = lambda { @model.send params[:operation].to_sym, params["#{params[:operation]}_object".to_sym] }
        @model = Rhoconnect::Model::Base.create(source)
        source_cud = Rhoconnect::Handler::Changes::Engine.new(['create', 'update', 'delete'], @model, handler_cud, params)
        source_cud.run_cud
      end    
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
rhoconnect-7.6.0 lib/rhoconnect/jobs/source_job.rb
rhoconnect-7.5.1 lib/rhoconnect/jobs/source_job.rb
rhoconnect-7.4.1 lib/rhoconnect/jobs/source_job.rb
rhoconnect-7.1.17 lib/rhoconnect/jobs/source_job.rb
rhoconnect-6.2.0 lib/rhoconnect/jobs/source_job.rb
rhoconnect-6.0.11 lib/rhoconnect/jobs/source_job.rb
rhoconnect-5.5.18 lib/rhoconnect/jobs/source_job.rb
rhoconnect-5.5.17 lib/rhoconnect/jobs/source_job.rb
rhoconnect-5.5.15 lib/rhoconnect/jobs/source_job.rb
rhoconnect-5.5.0.22 lib/rhoconnect/jobs/source_job.rb
rhoconnect-5.5.2 lib/rhoconnect/jobs/source_job.rb
rhoconnect-5.5.0.7 lib/rhoconnect/jobs/source_job.rb
rhoconnect-5.5.0.3 lib/rhoconnect/jobs/source_job.rb
rhoconnect-5.5.0 lib/rhoconnect/jobs/source_job.rb
rhoconnect-5.1.1 lib/rhoconnect/jobs/source_job.rb
rhoconnect-4.0.4 lib/rhoconnect/jobs/source_job.rb