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