Sha256: 5a7c8839f390096cb6401655f085a9571f5a301cd35ab148f0beffa2c8a7d0e8

Contents?: true

Size: 1.11 KB

Versions: 3

Compression:

Stored size: 1.11 KB

Contents

require 'sinatra/base'
module Luca
  class Collection
    class Endpoint < Sinatra::Base
      # Index
      get "/collections/:namespace" do  
        @collection = Luca::Collection.new(namespace: params[:namespace])
        @collection.index.to_json
      end

      # Show
      get "/collections/:namespace/:id" do
        @collection = Luca::Collection.new(namespace: params[:namespace])
        @collection.show( params[:id] ).to_json
      end

      # Create
      post "/collections/:namespace" do
        @collection = Luca::Collection.new(namespace: params[:namespace])
        payload = JSON.parse( request.body.read.to_s )
        @collection.create(payload).to_json
      end

      # Update
      put "/collections/:namespace/:id" do
        @collection = Luca::Collection.new(namespace: params[:namespace])
        payload = JSON.parse( request.body.read.to_s )
        @collection.update(payload).to_json
      end

      # Destroy
      delete "/collections/:namespace/:id" do
        @collection = Luca::Collection.new(namespace: params[:namespace])
        @collection.destroy(params).to_json
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
luca-0.9.91 lib/luca/collection/endpoint.rb
luca-0.9.9 lib/luca/collection/endpoint.rb
luca-0.9.899 lib/luca/collection/endpoint.rb