Sha256: 57e93dbc0151d5cafea39f3612590de91e8ff22377cf81715813a63c8ec9acb3
Contents?: true
Size: 1.46 KB
Versions: 5
Compression:
Stored size: 1.46 KB
Contents
module Picky module Sinatra module IndexActions def self.extended base # Updates the given item and returns HTTP codes: # * 200 if the index has been updated or no error case has occurred. # * 404 if the index cannot be found. # * 400 if no data or item id has been provided in the data. # # Note: 200 returns no data yet. # base.post '/' do index_name = params['index'] begin index = Picky::Indexes[index_name.to_sym] data = params['data'] return 400 unless data data && index.replace_from(Yajl::Parser.parse data) && 200 rescue IdNotGivenException 400 rescue StandardError 404 end end # Deletes the given item and returns: # * 200 if the index has been updated or no error case has occurred. # * 404 if the index cannot be found. # * 400 if no data or item id has been provided in the data. # # Note: 200 returns no data yet. # base.delete '/' do index_name = params['index'] begin index = Picky::Indexes[index_name.to_sym] data = Yajl::Parser.parse params['data'] id = data['id'] id ? index.remove(id) && 200 : 400 rescue StandardError 404 end end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems