Sha256: a1fba9adc70122869da3682b0fc7d7d279009ddd9be55b7f9b6fe883d8c67437

Contents?: true

Size: 646 Bytes

Versions: 118

Compression:

Stored size: 646 Bytes

Contents

require 'rack/app'
require 'json'

class App < Rack::App
  USERS = Hash.new

  class CodedError < StandardError
    attr_reader :code

    def initialize(code)
      @code = code
    end
  end

  get '/health' do
    response.status = 204
  end

  post '/users' do
    params = JSON.parse(request.body.read)
    user_id = params['login']
    password = params['password']
    halt 422 unless user_id && password
    USERS[user_id] = params
    response.headers['location'] = "/users/#{user_id}"
    response.status = 201
  end

  def halt(code)
    raise CodedError, code
  end

  error CodedError do |ex|
    response.status = ex.code
  end
end

Version data entries

118 entries across 118 versions & 1 rubygems

Version Path
appmap-0.83.4 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.83.3 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.83.2 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.83.1 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.83.0 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.82.0 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.81.1 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.81.0 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.80.2 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.80.1 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.80.0 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.79.0 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.78.0 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.77.4 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.77.3 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.77.2 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.77.1 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.77.0 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.76.0 spec/fixtures/rack_users_app/lib/app.rb
appmap-0.75.0 spec/fixtures/rack_users_app/lib/app.rb