Sha256: 5e02e9f038d5c4159c7e02970251c607b059be83ff0e4b620dc0838511bb74d9

Contents?: true

Size: 1.66 KB

Versions: 6

Compression:

Stored size: 1.66 KB

Contents

class DataController < ApplicationController
  route '/parse_params', :post do
    params do
      param :q, in: 'query'
      param :user, required: true do
        param :name, type: 'string', default: 'Jim'
        param :age, type: 'integer', default: 18
        param :foo, param: false
      end
    end
  end
  def parse_params
    render json: { params_on_schema: params_on_schema }
  end

  route '/render_hash', :post do
    status 200 do
      expose :user, required: true do
        expose :name, type: 'string', default: 'Jim'
        expose :age, type: 'integer', default: 18
      end
    end
    status 201 do
      expose :user, required: true do
        expose :name, type: 'string', default: 'Jack'
        expose :age, type: 'integer', default: 20
      end
    end
  end
  def render_hash
    render json_on_schema: { 'user' => params[:user].to_unsafe_h }, status: params[:status] || 200, scope: 'foo'
  end

  route '/render_object', :post do
    status 200 do
      expose :user, required: true do
        expose :name, type: 'string', default: 'Jim'
        expose :age, type: 'integer', default: 18
      end
    end
  end
  def render_object
    user = Object.new
    def user.name; 'Jim'; end
    def user.age; 18; end
    render json_on_schema: { 'user' => user }
  end

  route '/render_with_options', :post do
    status 200 do
      expose :user, required: true do
        expose :a, value: -> { @a }
        expose :b, scope: 'foo'
        expose :c, scope: 'bar'
        expose :d, default: 'd', render: false
      end
    end
  end
  def render_with_options
    @a = 'aa'
    render json_on_schema: { 'user' => params[:user].to_unsafe_hash }, scope: 'foo'
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
meta-api-0.0.8 examples/rails_app/app/controllers/data_controller.rb
meta-api-0.0.7 examples/rails_app/app/controllers/data_controller.rb
meta-api-0.0.6 examples/rails_app/app/controllers/data_controller.rb
meta-api-0.0.5 examples/rails_app/app/controllers/data_controller.rb
meta-api-0.0.4 examples/rails_app/app/controllers/data_controller.rb
meta-api-0.0.3 examples/rails_app/app/controllers/data_controller.rb