ERROR_ACTIONS = [:render_error, :render_not_found]
+ before_filter :set_cors_headers
before_filter :respond_with_json_by_default
before_filter :remote_ip
before_filter :load_read_auths
end
end
+ def set_cors_headers
+ response.headers['Access-Control-Allow-Origin'] = '*'
+ response.headers['Access-Control-Allow-Methods'] = 'GET, HEAD, PUT, POST, DELETE'
+ response.headers['Access-Control-Allow-Headers'] = 'Authorization'
+ response.headers['Access-Control-Max-Age'] = '86486400'
+ end
+
def respond_with_json_by_default
html_index = request.accepts.index(Mime::HTML)
if html_index.nil? or request.accepts[0...html_index].include?(Mime::JSON)
(self.class.send "_#{params[:action]}_requires_parameters" rescue {}).
each do |key, info|
if info[:required] and not params.include?(key)
- raise ArgumentError("#{key} parameter is required")
+ raise ArgumentError.new("#{key} parameter is required")
elsif info[:type] == 'boolean'
# Make sure params[key] is either true or false -- not a
# string, not nil, etc.
if not params.include?(key)
params[key] = info[:default]
- elsif [false, 'false'].include? params[key]
+ elsif [false, 'false', '0', 0].include? params[key]
params[key] = false
- elsif [true, 'true'].include? params[key]
+ elsif [true, 'true', '1', 1].include? params[key]
params[key] = true
else
- raise TypeError("#{key} parameter must be a boolean, true or false")
+ raise TypeError.new("#{key} parameter must be a boolean, true or false")
end
end
end
type: "boolean",
description: "Adjust name to ensure uniqueness instead of returning an error on (owner_uuid, name) collision.",
location: "query",
+ required: false,
default: false
}
}