Sha256: 760db624fd04f5ce3974669641a6890cff1297e855dc0d56646f8ec6f934fa0c

Contents?: true

Size: 1.46 KB

Versions: 37

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(MultiJson.decode 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 = MultiJson.decode params['data']
            id = data['id']
            id ? index.remove(id) && 200 : 400
          rescue StandardError
            404
          end
        end
      end
      
    end
    
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
picky-4.12.7 lib/picky/sinatra/index_actions.rb
picky-4.12.6 lib/picky/sinatra/index_actions.rb
picky-4.12.5 lib/picky/sinatra/index_actions.rb
picky-4.12.4 lib/picky/sinatra/index_actions.rb
picky-4.12.3 lib/picky/sinatra/index_actions.rb
picky-4.12.2 lib/picky/sinatra/index_actions.rb
picky-4.12.1 lib/picky/sinatra/index_actions.rb
picky-4.12.0 lib/picky/sinatra/index_actions.rb
picky-4.11.3 lib/picky/sinatra/index_actions.rb
picky-4.11.2 lib/picky/sinatra/index_actions.rb
picky-4.11.1 lib/picky/sinatra/index_actions.rb
picky-4.11.0 lib/picky/sinatra/index_actions.rb
picky-4.10.0 lib/picky/sinatra/index_actions.rb
picky-4.9.0 lib/picky/sinatra/index_actions.rb
picky-4.8.1 lib/picky/sinatra/index_actions.rb
picky-4.8.0 lib/picky/sinatra/index_actions.rb
picky-4.7.0 lib/picky/sinatra/index_actions.rb
picky-4.6.6 lib/picky/sinatra/index_actions.rb
picky-4.6.5 lib/picky/sinatra/index_actions.rb
picky-4.6.4 lib/picky/sinatra/index_actions.rb