Sha256: 1d12a83d726f35657da1559b59170116da078baa0aea25383d47bffe7761f25a

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

require 'rest-client'
require 'slim-rails'

class Lecter::DiagnosisController < ActionController::Base
  def new
  end

  def show
  end

  def create
    if diagnosis_params[:method].downcase == 'get'
      response = ::RestClient.get(
        'localhost:3000/' + diagnosis_params[:endpoint],
        params: (YAML.load(diagnosis_params[:params]) || {}).merge(lecter_analysis: true)
      ).body
      prepare_data(response)
    elsif diagnosis_params[:method].downcase == 'post'
      response = ::RestClient.post(
        'localhost:3000/' + diagnosis_params[:endpoint],
        YAML.load(diagnosis_params[:params]).merge(lecter_analysis: true)
      ).body
      prepare_data(response)
    end

    render :show
  end

  private

  def diagnosis_params
    params.permit(:endpoint, :params, :method)
  end

  def prepare_data(items)
    @lines = []
    @items = items.split(';')
    @items.each do |item|
      file = item.split(' ')[0]
      if @lines.last.is_a?(Hash) && @lines.last.keys.first.to_s == file
        @lines.last[file] = @lines.last[file] << item.split(' ')[1].to_i
      else
        @lines << {"#{file}" => [item.split(' ')[1].to_i]}
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lecter-0.1.2 app/controllers/lecter/diagnosis_controller.rb