Sha256: 0bc3cc2cf44b35e5c16b1e451253f3b0f17fe8b74d51f163938459e0ef9dc3dd

Contents?: true

Size: 1.01 KB

Versions: 42

Compression:

Stored size: 1.01 KB

Contents

require_relative '../controller'
require_relative '../../serializers/test_session'

module Inferno
  module Web
    module Controllers
      module TestSessions
        class Create < Controller
          PARAMS = [:test_suite_id, :suite_options].freeze

          def handle(req, res)
            params = req.params.to_h
            params.merge!(JSON.parse(req.body.string).symbolize_keys) unless req.body.string.blank?

            session = repo.create(create_params(params))

            repo.apply_preset(session, params[:preset_id]) if params[:preset_id].present?

            res.body = serialize(session)
          rescue Sequel::ValidationFailed, Sequel::ForeignKeyConstraintViolation => e
            halt 422, { errors: e.message }.to_json
          rescue StandardError => e
            Application['logger'].error(e.full_message)
            halt 500, { errors: e.message }.to_json
          end

          def create_params(params)
            params.slice(*PARAMS)
          end
        end
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
inferno_core-0.6.2 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.6.1 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.6.0 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.5.4 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.5.3 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.5.2 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.5.1 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.5.0 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.44 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.43 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.42 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.41 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.40 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.39 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.38 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.35 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.34 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.33 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.32 lib/inferno/apps/web/controllers/test_sessions/create.rb
inferno_core-0.4.31 lib/inferno/apps/web/controllers/test_sessions/create.rb