Class: RailsHttpLab::EnvironmentsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/rails_http_lab/environments_controller.rb

Instance Method Summary collapse

Instance Method Details

#indexObject



5
6
7
# File 'app/controllers/rails_http_lab/environments_controller.rb', line 5

def index
  render json: { environments: RailsHttpLab::Storage::Tree.new.build[:environments] }
end

#showObject



9
10
11
12
13
# File 'app/controllers/rails_http_lab/environments_controller.rb', line 9

def show
  doc = storage.read_bru("environments/#{params[:name]}.bru")
  vars = doc.block("vars")&.pairs || []
  render json: { name: params[:name], vars: vars }
end

#updateObject



15
16
17
18
19
20
21
22
23
24
25
# File 'app/controllers/rails_http_lab/environments_controller.rb', line 15

def update
  pairs = Array(params[:vars]).map { |v|
    v = v.to_unsafe_h if v.respond_to?(:to_unsafe_h)
    [v["key"].to_s, v["value"].to_s]
  }
  doc = RailsHttpLab::Bruno::Document.new(blocks: [
    RailsHttpLab::Bruno::Block.new(name: "vars", mode: :kv, pairs: pairs)
  ])
  storage.write_bru("environments/#{params[:name]}.bru", doc)
  render json: { ok: true }
end