class Kintone::Client::Middleware::Form

Public Class Methods

new(app, options = nil) click to toggle source
Calls superclass method
# File lib/kintone/client/middleware/form.rb, line 3
def initialize(app, options = nil)
  super(app)
end

Public Instance Methods

call(env) click to toggle source
# File lib/kintone/client/middleware/form.rb, line 7
def call(env)
  @app.call(env).on_complete do |env|
    if record = env[:body]['record']
      env[:body]['record'] = parse_form(record)
    elsif records = env[:body]['records']
      env[:body]['records'] = records.map {|r| parse_form(r) }
    end

    if totalCount = env[:body]['totalCount']
      env[:body]['totalCount'] = totalCount.to_i
    end
  end
end

Private Instance Methods

parse_field(field) click to toggle source
# File lib/kintone/client/middleware/form.rb, line 33
def parse_field(field)
  field_type  = field['type']
  field_value = field['value']

  if field_type == 'SUBTABLE'
    subtable = {}

    field_value.each do |row|
      subtable[row['id']] = parse_form(row['value'])
    end

    subtable
  else
    field_value
  end
end
parse_form(form) click to toggle source
# File lib/kintone/client/middleware/form.rb, line 23
def parse_form(form)
  parsed = {}

  form.each do |name, field|
    parsed[name] = parse_field(field)
  end

  parsed
end