Sha256: b6bb242a596cfe9ffc3a3ddf1a165e4d62d4262e55c0dbe7bafa89a76c9e9574
Contents?: true
Size: 750 Bytes
Versions: 10
Compression:
Stored size: 750 Bytes
Contents
require 'sinatra/base' require 'compel' class SinatraApp < Sinatra::Base set :show_exceptions, false set :raise_errors, true before do content_type :json end helpers do def compel(schema) params.merge! Compel.run!(params, Compel.hash.keys(schema)) end end error Compel::InvalidObjectError do |exception| status 400 { errors: exception.object[:errors] }.to_json end configure :development do set :show_exceptions, false set :raise_errors, true end post '/api/posts' do compel({ post: Compel.hash.keys({ title: Compel.string.required, body: Compel.string, published: Compel.boolean.default(false) }).required }) params.to_json end end
Version data entries
10 entries across 10 versions & 1 rubygems