Sha256: 7ab0a8af1569449bcbee5788c82a7dd9f7fc5decf7895ce85b7ddefc8e2cb908

Contents?: true

Size: 647 Bytes

Versions: 65

Compression:

Stored size: 647 Bytes

Contents

module Brief::Server::Handlers
  class Browse
    def self.available_handlers
      Brief::Model.classes.map(&:type_alias).map(&:pluralize)
    end

    def self.handle(path_args, briefcase, options={})
      model_type = Array(path_args).first

      if available_handlers.include?(model_type)
        models = briefcase.send(model_type.to_s)

        presented_models = models.map do |model|
          model.as_json(options.symbolize_keys)
        end

        [200, {"Content-Type"=>"application/json"}, presented_models]
      else
        [403, {"Content-Type"=>"application/json"}, {error: "Invalid model type"}]
      end
    end
  end
end

Version data entries

65 entries across 65 versions & 1 rubygems

Version Path
brief-1.17.14 lib/brief/server/handlers/browse.rb
brief-1.17.13 lib/brief/server/handlers/browse.rb
brief-1.17.12 lib/brief/server/handlers/browse.rb
brief-1.17.11 lib/brief/server/handlers/browse.rb
brief-1.17.10 lib/brief/server/handlers/browse.rb
brief-1.17.9 lib/brief/server/handlers/browse.rb
brief-1.17.8 lib/brief/server/handlers/browse.rb
brief-1.17.7 lib/brief/server/handlers/browse.rb
brief-1.17.5 lib/brief/server/handlers/browse.rb
brief-1.17.4 lib/brief/server/handlers/browse.rb
brief-1.17.3 lib/brief/server/handlers/browse.rb
brief-1.17.2 lib/brief/server/handlers/browse.rb
brief-1.17.1 lib/brief/server/handlers/browse.rb
brief-1.17.0 lib/brief/server/handlers/browse.rb
brief-1.16.2 lib/brief/server/handlers/browse.rb
brief-1.16.1 lib/brief/server/handlers/browse.rb
brief-1.16.0 lib/brief/server/handlers/browse.rb
brief-1.15.5 lib/brief/server/handlers/browse.rb
brief-1.15.4 lib/brief/server/handlers/browse.rb
brief-1.15.3 lib/brief/server/handlers/browse.rb