/ backend / scripts / endpoint_doc.rb
endpoint_doc.rb
 1  require 'main'
 2  
 3  fltr = ARGV[0] || ""
 4  
 5  if fltr.length == 0
 6    puts "All endpoints"
 7  else
 8    puts "Endpoints matching: #{fltr}"
 9  end
10  
11  RESTHelpers::Endpoint.all.keep_if { |e| e[:uri] =~ /#{fltr}/ }.each do |e|
12    puts "\n#{e[:method]} '#{e[:uri]}':"
13    puts "  Description: #{e[:description]}"
14    puts "  Parameters: "
15  
16    if e[:paginated]
17      puts "This endpoint is paginated. :page, :id_set, or :all_ids is required"
18      puts "    Integer page -- The page set to be returned"
19      puts "    Integer page_size -- The size of the set to be returned ( Optional. default set in AppConfig )"
20      puts "    Comma seperated list id_set -- A list of ids to request resolved objects ( Must be smaller than default page_size )"
21      puts "    Boolean all_ids -- Return a list of all object ids"
22    end
23  
24  
25    e[:params].each do |param|
26      opts = (param[3] or {})
27  
28      vs = opts[:validation] ? " -- #{opts[:validation][0]}" : ""
29  
30      if opts[:body]
31        puts "    #{param[1]} <request body> -- #{param[2]}#{vs}"
32      else
33        puts "    #{param[1]} #{param[0]} -- #{param[2]}#{vs}"
34      end
35    end
36  
37    #  puts "  Returns: #{e[:returns].inspect}"
38    puts "  Returns:"
39    e[:returns].each do |ret|
40      puts "    #{ret[0]} -- #{ret[1]}"
41    end
42  
43  end