Fix 404 at api_client_authorizations.create_system_auth and add tests.
[arvados.git] / services / api / app / controllers / arvados / v1 / schema_controller.rb
index 8a16356c0ddcd6958c9a606c6e43dc00f7d328c8..7df2edb49fff38213ac5eb6a8d1a3a3b36298742 100644 (file)
@@ -1,5 +1,6 @@
 class Arvados::V1::SchemaController < ApplicationController
   skip_before_filter :find_object_by_uuid
+  skip_before_filter :render_404_if_no_object
   skip_before_filter :require_auth_scope_all
 
   def show
@@ -23,6 +24,7 @@ class Arvados::V1::SchemaController < ApplicationController
   end
 
   def discovery_rest_description
+    expires_in 24.hours, public: true
     discovery = Rails.cache.fetch 'arvados_v1_rest_discovery' do
       Rails.application.eager_load!
       discovery = {
@@ -147,6 +149,7 @@ class Arvados::V1::SchemaController < ApplicationController
           id: k.to_s,
           description: k.to_s,
           type: "object",
+          uuidPrefix: (k.respond_to?(:uuid_prefix) ? k.uuid_prefix : nil),
           properties: {
             uuid: {
               type: "string",
@@ -243,16 +246,9 @@ class Arvados::V1::SchemaController < ApplicationController
               path: "#{k.to_s.underscore.pluralize}",
               httpMethod: "POST",
               description: "Create a new #{k.to_s}.",
-              parameters: {
-                k.to_s.underscore => {
-                  type: "object",
-                  required: false,
-                  location: "query",
-                  properties: object_properties
-                }
-              },
+              parameters: {},
               request: {
-                required: false,
+                required: true,
                 properties: {
                   k.to_s.underscore => {
                     "$ref" => k.to_s
@@ -277,16 +273,10 @@ class Arvados::V1::SchemaController < ApplicationController
                   description: "The UUID of the #{k.to_s} in question.",
                   required: true,
                   location: "path"
-                },
-                k.to_s.underscore => {
-                  type: "object",
-                  required: false,
-                  location: "query",
-                  properties: object_properties
                 }
               },
               request: {
-                required: false,
+                required: true,
                 properties: {
                   k.to_s.underscore => {
                     "$ref" => k.to_s