Class: Brief::Server::Handlers::Schema

Inherits:
Object
  • Object
show all
Defined in:
lib/brief/server/handlers/schema.rb

Class Method Summary collapse

Class Method Details

.handle(path_args, briefcase, options) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/brief/server/handlers/schema.rb', line 3

def self.handle(path_args, briefcase, options)
  request = options.fetch(:request)

  headers = {"Content-Type"=>"application/json"}

  if request.path == "/schema"
    [200, headers, Brief::Model.classes.map(&:to_schema)]
  elsif request.path.match(/^\/schema\/(.+)$/)
    requested = request.path.split("/").last

    if model = Brief::Model.lookup(requested)
      [200, headers, model.to_schema]
    else
      [404, headers, {error: "Can not find model class matching #{ requested }"}]
    end
  end
end