Sha256: 5c230e35699cd6d64a292b38a089b5cc1299bbb2413ca53e5b51a3e4a547baac

Contents?: true

Size: 817 Bytes

Versions: 5

Compression:

Stored size: 817 Bytes

Contents

module Asyncapi
  module Server
    module RailsExt
      module Controller

        extend ActiveSupport::Concern

        module ClassMethods
          def async(method_name, klass)
            define_method(method_name) do
              job = Job.create(job_params_with(klass.name))
              ActiveRecord::Base.after_transaction do
                JobWorker.perform_async(job.id)
              end
              serializer = JobSerializer.new(job)
              render json: serializer
            end
          end
        end

        def job_params_with(class_name)
          params[:job].merge!(class_name: class_name)
          params.require(:job).permit(
            :callback_url,
            :class_name,
            :params,
            :secret,
          )
        end

      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
asyncapi-server-1.3.0 lib/asyncapi/server/rails_ext/controller.rb
asyncapi-server-1.2.0 lib/asyncapi/server/rails_ext/controller.rb
asyncapi-server-1.1.3 lib/asyncapi/server/rails_ext/controller.rb
asyncapi-server-1.1.2 lib/asyncapi/server/rails_ext/controller.rb
asyncapi-server-1.1.1 lib/asyncapi/server/rails_ext/controller.rb