Modified: branches/discovery/lib/rest.rb (2540 => 2541)
--- branches/discovery/lib/rest.rb 2010-11-26 15:22:09 UTC (rev 2540)
+++ branches/discovery/lib/rest.rb 2010-11-26 16:10:32 UTC (rev 2541)
@@ -33,7 +33,14 @@
def rest_routes(map)
TABLES['REST'][:data].keys.each do |uri|
TABLES['REST'][:data][uri].keys.each do |method|
- map.connect "#{uri}.xml", :controller => 'api', :action ="" 'process_request', :uri => uri
+ formats = []
+
+ formats << "xml" if TABLES['REST'][:data][uri][method]["XML"]
+ formats << "rdf" if TABLES['REST'][:data][uri][method]["RDF"]
+
+ formats.each do |format|
+ map.connect "#{uri}.#{format}", :controller => 'api', :action ="" 'process_request', :uri => uri, :format => format
+ end
end
end
end
@@ -324,7 +331,7 @@
render(:xml => doc.to_s)
end
-def rest_crud_request(req_uri, rules, user, query)
+def rest_crud_request(req_uri, format, rules, user, query)
rest_name = rules['REST Entity']
model_name = rules['Model Entity']
@@ -409,7 +416,7 @@
range
end
-def rest_index_request(req_uri, rules, user, query)
+def rest_index_request(req_uri, format, rules, user, query)
rest_name = rules['REST Entity']
model_name = rules['Model Entity']
@@ -787,11 +794,11 @@
resource
end
-def rest_access_redirect(req_uri, rules, user, query)
+def rest_access_redirect(opts = {})
- return rest_response(400) if query['resource'].nil?
+ return rest_response(400) if opts[:query]['resource'].nil?
- bits = parse_resource_uri(query['resource'])
+ bits = parse_resource_uri(opts[:query]['resource'])
return rest_response(404) if bits.nil?
@@ -799,7 +806,7 @@
return rest_response(404) if ob.nil?
- return rest_response(401) if !Authorization.is_authorized?('view', nil, ob, user)
+ return rest_response(401) if !Authorization.is_authorized?('view', nil, ob, opts[:user])
rest_response(307, :location => rest_access_uri(ob))
end
@@ -849,20 +856,20 @@
:update_mode => update_mode)
end
-def workflow_aux(action, req_uri, rules, user, query)
+def workflow_aux(action, opts = {})
# Obtain object
case action
when 'create':
- return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'Workflow', user, nil)
- if query['id']
- ob = obtain_rest_resource('Workflow', query['id'], query['version'], user, action)
+ return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'Workflow', opts[:user], nil)
+ if opts[:query]['id']
+ ob = obtain_rest_resource('Workflow', opts[:query]['id'], opts[:query]['version'], opts[:user], action)
else
- ob = Workflow.new(:contributor => user)
+ ob = Workflow.new(:contributor => opts[:user])
end
when 'read', 'update', 'destroy':
- ob = obtain_rest_resource('Workflow', query['id'], query['version'], user, action)
+ ob = obtain_rest_resource('Workflow', opts[:query]['id'], opts[:query]['version'], opts[:user], action)
else
raise "Invalid action '#{action}'"
end
@@ -871,7 +878,7 @@
if action == "destroy"
- return rest_response(400, :reason => "Cannot delete individual versions") if query['version']
+ return rest_response(400, :reason => "Cannot delete individual versions") if opts[:query]['version']
ob.destroy
@@ -980,7 +987,7 @@
svg_file.close
end
- success = if (action == 'create' and query['id'])
+ success = if (action == 'create' and opts[:query]['id'])
ob.save_as_new_version(revision_comment)
else
ob.save
@@ -990,10 +997,10 @@
# Elements to update if we're not dealing with a workflow version
- if query['version'].nil?
+ if opts[:query]['version'].nil?
if ob.contribution.policy.nil?
- ob.contribution.policy = create_default_policy(user)
+ ob.contribution.policy = create_default_policy(opts[:user])
ob.contribution.save
end
@@ -1003,34 +1010,34 @@
ob = ob.versioned_resource if ob.respond_to?("versioned_resource")
- rest_get_request(ob, "workflow", user,
+ rest_get_request(ob, "workflow", opts[:user],
rest_resource_uri(ob), "workflow", { "id" => ob.id.to_s })
end
-def post_workflow(req_uri, rules, user, query)
- workflow_aux('create', req_uri, rules, user, query)
+def post_workflow(opts)
+ workflow_aux('create', opts)
end
-def put_workflow(req_uri, rules, user, query)
- workflow_aux('update', req_uri, rules, user, query)
+def put_workflow(opts)
+ workflow_aux('update', opts)
end
-def delete_workflow(req_uri, rules, user, query)
- workflow_aux('destroy', req_uri, rules, user, query)
+def delete_workflow(opts)
+ workflow_aux('destroy', opts)
end
# file handling
-def file_aux(action, req_uri, rules, user, query)
+def file_aux(action, opts = {})
# Obtain object
case action
when 'create':
- return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'Blob', user, nil)
- ob = Blob.new(:contributor => user)
+ return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'Blob', opts[:user], nil)
+ ob = Blob.new(:contributor => opts[:user])
when 'read', 'update', 'destroy':
- ob = obtain_rest_resource('Blob', query['id'], query['version'], user, action)
+ ob = obtain_rest_resource('Blob', opts[:query]['id'], opts[:query]['version'], opts[:user], action)
else
raise "Invalid action '#{action}'"
end
@@ -1107,41 +1114,41 @@
end
if ob.contribution.policy.nil?
- ob.contribution.policy = create_default_policy(user)
+ ob.contribution.policy = create_default_policy(opts[:user])
ob.contribution.save
end
update_permissions(ob, permissions)
end
- rest_get_request(ob, "file", user,
+ rest_get_request(ob, "file", opts[:user],
rest_resource_uri(ob), "file", { "id" => ob.id.to_s })
end
-def post_file(req_uri, rules, user, query)
- file_aux('create', req_uri, rules, user, query)
+def post_file(opts)
+ file_aux('create', opts)
end
-def put_file(req_uri, rules, user, query)
- file_aux('update', req_uri, rules, user, query)
+def put_file(opts)
+ file_aux('update', opts)
end
-def delete_file(req_uri, rules, user, query)
- file_aux('destroy', req_uri, rules, user, query)
+def delete_file(opts)
+ file_aux('destroy', opts)
end
# pack handling
-def pack_aux(action, req_uri, rules, user, query)
+def pack_aux(action, opts = {})
# Obtain object
case action
when 'create':
- return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'Pack', user, nil)
- ob = Pack.new(:contributor => user)
+ return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'Pack', opts[:user], nil)
+ ob = Pack.new(:contributor => opts[:user])
when 'read', 'update', 'destroy':
- ob = obtain_rest_resource('Pack', query['id'], query['version'], user, action)
+ ob = obtain_rest_resource('Pack', opts[:query]['id'], opts[:query]['version'], opts[:user], action)
else
raise "Invalid action '#{action}'"
end
@@ -1171,30 +1178,30 @@
end
if ob.contribution.policy.nil?
- ob.contribution.policy = create_default_policy(user)
+ ob.contribution.policy = create_default_policy(opts[:user])
ob.contribution.save
end
update_permissions(ob, permissions)
end
- rest_get_request(ob, "pack", user,
+ rest_get_request(ob, "pack", opts[:user],
rest_resource_uri(ob), "pack", { "id" => ob.id.to_s })
end
-def post_pack(req_uri, rules, user, query)
- pack_aux('create', req_uri, rules, user, query)
+def post_pack(opts)
+ pack_aux('create', opts)
end
-def put_pack(req_uri, rules, user, query)
- pack_aux('update', req_uri, rules, user, query)
+def put_pack(opts)
+ pack_aux('update', opts)
end
-def delete_pack(req_uri, rules, user, query)
- pack_aux('destroy', req_uri, rules, user, query)
+def delete_pack(opts)
+ pack_aux('destroy', opts)
end
-def external_pack_item_aux(action, req_uri, rules, user, query)
+def external_pack_item_aux(action, opts = {})
unless action == 'destroy'
@@ -1212,11 +1219,11 @@
case action
when 'create':
- return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'PackRemoteEntry', user, pack)
+ return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'PackRemoteEntry', opts[:user], pack)
return rest_response(400, :reason => "Pack not found") if pack.nil?
- return rest_response(401) unless Authorization.is_authorized?('edit', nil, pack, user)
+ return rest_response(401) unless Authorization.is_authorized?('edit', nil, pack, opts[:user])
- ob = PackRemoteEntry.new(:user => user,
+ ob = PackRemoteEntry.new(:user => opts[:user],
:pack => pack,
:title => title,
:uri => uri,
@@ -1225,10 +1232,10 @@
when 'read', 'update', 'destroy':
- ob = obtain_rest_resource('PackRemoteEntry', query['id'], query['version'], user, action)
+ ob = obtain_rest_resource('PackRemoteEntry', opts[:query]['id'], opts[:query]['version'], opts[:user], action)
if ob
- return rest_response(401) unless Authorization.is_authorized?('edit', nil, ob.pack, user)
+ return rest_response(401) unless Authorization.is_authorized?('edit', nil, ob.pack, opts[:user])
end
else
@@ -1253,23 +1260,23 @@
end
end
- rest_get_request(ob, "external-pack-item", user,
+ rest_get_request(ob, "external-pack-item", opts[:user],
rest_resource_uri(ob), "external-pack-item", { "id" => ob.id.to_s })
end
-def post_external_pack_item(req_uri, rules, user, query)
- external_pack_item_aux('create', req_uri, rules, user, query)
+def post_external_pack_item(opts)
+ external_pack_item_aux('create', opts)
end
-def put_external_pack_item(req_uri, rules, user, query)
- external_pack_item_aux('update', req_uri, rules, user, query)
+def put_external_pack_item(opts)
+ external_pack_item_aux('update', opts)
end
-def delete_external_pack_item(req_uri, rules, user, query)
- external_pack_item_aux('destroy', req_uri, rules, user, query)
+def delete_external_pack_item(opts)
+ external_pack_item_aux('destroy', opts)
end
-def internal_pack_item_aux(action, req_uri, rules, user, query)
+def internal_pack_item_aux(action, opts = {})
unless action == 'destroy'
@@ -1285,21 +1292,21 @@
case action
when 'create':
- return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'PackContributableEntry', user, pack)
+ return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'PackContributableEntry', opts[:user], pack)
return rest_response(400, :reason => "Pack not found") if pack.nil?
- return rest_response(401) unless Authorization.is_authorized?('edit', nil, pack, user)
+ return rest_response(401) unless Authorization.is_authorized?('edit', nil, pack, opts[:user])
- ob = PackContributableEntry.new(:user => user,
+ ob = PackContributableEntry.new(:user => opts[:user],
:pack => pack,
:contributable => item,
:comment => comment)
when 'read', 'update', 'destroy':
- ob = obtain_rest_resource('PackContributableEntry', query['id'], query['version'], user, action)
+ ob = obtain_rest_resource('PackContributableEntry', opts[:query]['id'], opts[:query]['version'], opts[:user], action)
if ob
- return rest_response(401) unless Authorization.is_authorized?('edit', nil, ob.pack, user)
+ return rest_response(401) unless Authorization.is_authorized?('edit', nil, ob.pack, opts[:user])
end
else
@@ -1321,23 +1328,23 @@
end
end
- rest_get_request(ob, "internal-pack-item", user,
+ rest_get_request(ob, "internal-pack-item", opts[:user],
rest_resource_uri(ob), "internal-pack-item", { "id" => ob.id.to_s })
end
-def post_internal_pack_item(req_uri, rules, user, query)
- internal_pack_item_aux('create', req_uri, rules, user, query)
+def post_internal_pack_item(opts)
+ internal_pack_item_aux('create', opts)
end
-def put_internal_pack_item(req_uri, rules, user, query)
- internal_pack_item_aux('update', req_uri, rules, user, query)
+def put_internal_pack_item(opts)
+ internal_pack_item_aux('update', opts)
end
-def delete_internal_pack_item(req_uri, rules, user, query)
- internal_pack_item_aux('destroy', req_uri, rules, user, query)
+def delete_internal_pack_item(opts)
+ internal_pack_item_aux('destroy', opts)
end
-# def post_job(req_uri, rules, user, query)
+# def post_job(opts)
#
# title = params["job"]["title"]
# description = params["job"]["description"]
@@ -1357,14 +1364,14 @@
# runner = TavernaEnactor.find_by_id(runner_bits[1].to_i)
# runnable = Workflow.find_by_id(runnable_bits[1].to_i)
#
-# return rest_response(400) if experiment.nil? or not Authorization.is_authorized?('edit', nil, experiment, user)
-# return rest_response(400) if runner.nil? or not Authorization.is_authorized?('download', nil, runner, user)
-# return rest_response(400) if runnable.nil? or not Authorization.is_authorized?('view', nil, runnable, user)
+# return rest_response(400) if experiment.nil? or not Authorization.is_authorized?('edit', nil, experiment, opts[:user])
+# return rest_response(400) if runner.nil? or not Authorization.is_authorized?('download', nil, runner, opts[:user])
+# return rest_response(400) if runnable.nil? or not Authorization.is_authorized?('view', nil, runnable, opts[:user])
#
# puts "#{params[:job]}"
#
# job = Job.new(:title => title, :description => description, :runnable => runnable,
-# :experiment => experiment, :runner => runner, :user => user,
+# :experiment => experiment, :runner => runner, :user => opts[:user],
# :runnable_version => runnable.current_version)
#
# inputs = { "Tags" => "aa,bb,aa,cc,aa" }
@@ -1393,14 +1400,14 @@
}
end
-def search(req_uri, rules, user, query)
+def search(opts)
- search_query = query['query']
+ search_query = opts[:query]['query']
# Start of curation hack
- if search_query[0..1].downcase == 'c:' && user &&
- Conf.curators.include?(user.username)
+ if search_query[0..1].downcase == 'c:' && opts[:user] &&
+ Conf.curators.include?(opts[:user].username)
bits = search_query.match("^c:([a-z]*) ([0-9]+)-([0-9]+)$")
@@ -1415,9 +1422,9 @@
obs = model.find(:all, :conditions => ['id >= ? AND id <= ?', bits[2], bits[3]])
- obs = (obs.select do |c| c.respond_to?('contribution') == false or Authorization.is_authorized?("view", nil, c, user) end)
+ obs = (obs.select do |c| c.respond_to?('contribution') == false or Authorization.is_authorized?("view", nil, c, opts[:user]) end)
- return produce_rest_list(req_uri, rules, query, obs, 'search', {}, user)
+ return produce_rest_list(opts[:req_uri], opts[:rules], opts[:query], obs, 'search', {}, opts[:user])
end
end
@@ -1427,11 +1434,11 @@
# parse type option
- if query['type']
+ if opts[:query]['type']
models = []
- query['type'].split(',').each do |type|
+ opts[:query]['type'].split(',').each do |type|
case type
when 'user'; models.push(User)
when 'workflow'; models.push(Workflow)
@@ -1446,27 +1453,27 @@
num = 25
- if query['num']
- num = query['num'].to_i
+ if opts[:query]['num']
+ num = opts[:query]['num'].to_i
end
num = 25 if num < 0
num = 100 if num > 100
- page = query['page'] ? query['page'].to_i : 1
+ page = opts[:query]['page'] ? opts[:query]['page'].to_i : 1
page = 1 if page < 1
attributes = {}
attributes['query'] = search_query
- attributes['type'] = query['type'] if models.length == 1
+ attributes['type'] = opts[:query]['type'] if models.length == 1
- obs = paginated_search_index(search_query, models, num, page, user)
+ obs = paginated_search_index(search_query, models, num, page, opts[:user])
- produce_rest_list(req_uri, rules, query, obs, 'search', attributes, user)
+ produce_rest_list(opts[:req_uri], opts[:rules], opts[:query], obs, 'search', attributes, opts[:user])
end
-def user_count(req_uri, rules, user, query)
+def user_count(opts)
users = User.find(:all).select do |user| user.activated? end
@@ -1479,7 +1486,7 @@
render(:xml => doc.to_s)
end
-def group_count(req_uri, rules, user, query)
+def group_count(opts)
root = LibXML::XML::Node.new('group-count')
root << Network.count.to_s
@@ -1490,10 +1497,10 @@
render(:xml => doc.to_s)
end
-def workflow_count(req_uri, rules, user, query)
+def workflow_count(opts)
workflows = Workflow.find(:all).select do |w|
- Authorization.is_authorized?('view', nil, w, user)
+ Authorization.is_authorized?('view', nil, w, opts[:user])
end
root = LibXML::XML::Node.new('workflow-count')
@@ -1505,10 +1512,10 @@
render(:xml => doc.to_s)
end
-def pack_count(req_uri, rules, user, query)
+def pack_count(opts)
packs = Pack.find(:all).select do |p|
- Authorization.is_authorized?('view', nil, p, user)
+ Authorization.is_authorized?('view', nil, p, opts[:user])
end
root = LibXML::XML::Node.new('pack-count')
@@ -1520,7 +1527,7 @@
render(:xml => doc.to_s)
end
-def content_type_count(req_uri, rules, user, query)
+def content_type_count(opts)
root = LibXML::XML::Node.new('type-count')
root << ContentType.count.to_s
@@ -1531,35 +1538,35 @@
render(:xml => doc.to_s)
end
-def get_tagged(req_uri, rules, user, query)
+def get_tagged(req_uri, user, query)
- return rest_response(400) if query['tag'].nil?
+ return rest_response(400) if opts[:query]['tag'].nil?
- tag = Tag.find_by_name(query['tag'])
+ tag = Tag.find_by_name(opts[:query]['tag'])
obs = tag ? tag.tagged : []
# filter out ones they are not allowed to get
- obs = (obs.select do |c| c.respond_to?('contribution') == false or Authorization.is_authorized?("index", nil, c, user) end)
+ obs = (obs.select do |c| c.respond_to?('contribution') == false or Authorization.is_authorized?("index", nil, c, opts[:user]) end)
- produce_rest_list("tagged", rules, query, obs, 'tagged', [], user)
+ produce_rest_list("tagged", opts[:rules], opts[:query], obs, 'tagged', [], opts[:user])
end
-def tag_cloud(req_uri, rules, user, query)
+def tag_cloud(opts)
num = 25
type = nil
- if query['num']
- if query['num'] == 'all'
+ if opts[:query]['num']
+ if opts[:query]['num'] == 'all'
num = nil
else
- num = query['num'].to_i
+ num = opts[:query]['num'].to_i
end
end
- if query['type'] and query['type'] != 'all'
- type = query['type'].camelize
+ if opts[:query]['type'] and opts[:query]['type'] != 'all'
+ type = opts[:query]['type'].camelize
type = 'Network' if type == 'Group'
type = 'Blob' if type == 'File'
@@ -1572,10 +1579,10 @@
root = LibXML::XML::Node.new('tag-cloud')
doc.root = root
- root['type'] = query['type'] ? query['type'] : 'all'
+ root['type'] = opts[:query]['type'] ? opts[:query]['type'] : 'all'
tags.each do |tag|
- tag_node = rest_reference(tag, query)
+ tag_node = rest_reference(tag, opts[:query])
tag_node['count'] = tag.taggings_count.to_s
root << tag_node
end
@@ -1583,9 +1590,12 @@
render(:xml => doc.to_s)
end
-def whoami_redirect(req_uri, rules, user, query)
- if user.class == User
- rest_response(307, :location => rest_access_uri(user))
+def whoami_redirect(opts)
+ if opts[:user].class == User
+ case opts[:format]
+ when "xml": rest_response(307, :location => rest_access_uri(opts[:user]))
+ when "rdf": rest_response(307, :location => formatted_user_url(:id => opts[:user].id, :format => 'rdf'))
+ end
else
rest_response(401)
end
@@ -1654,17 +1664,17 @@
# Comments
-def comment_aux(action, req_uri, rules, user, query)
+def comment_aux(action, opts)
# Obtain object
case action
when 'create':
- return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'Comment', user, nil)
+ return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'Comment', opts[:user], nil)
- ob = Comment.new(:user => user)
+ ob = Comment.new(:user => opts[:user])
when 'read', 'update', 'destroy':
- ob = obtain_rest_resource('Comment', query['id'], query['version'], user, action)
+ ob = obtain_rest_resource('Comment', opts[:query]['id'], opts[:query]['version'], opts[:user], action)
else
raise "Invalid action '#{action}'"
end
@@ -1686,7 +1696,7 @@
if subject
return rest_response(400) unless [Blob, Network, Pack, Workflow].include?(subject.class)
- return rest_response(401) unless Authorization.is_authorized_for_type?(action, 'Comment', user, subject)
+ return rest_response(401) unless Authorization.is_authorized_for_type?(action, 'Comment', opts[:user], subject)
ob.commentable = subject
end
@@ -1705,8 +1715,8 @@
return matches[0] if matches.length == 1
end
- if comment[0..1].downcase == 'c:' && user && subject &&
- Conf.curators.include?(user.username)
+ if comment[0..1].downcase == 'c:' && opts[:user] && subject &&
+ Conf.curators.include?(opts[:user].username)
comment = comment[2..-1].strip
@@ -1736,7 +1746,7 @@
if curation_type
events.push(CurationEvent.new(:category => curation_type,
- :object => subject, :user => user, :details => details))
+ :object => subject, :user => opts[:user], :details => details))
else
failed = true
end
@@ -1754,7 +1764,7 @@
subject.solr_save
- return rest_get_request(ob, "comment", user, rest_resource_uri(ob),
+ return rest_get_request(ob, "comment", opts[:user], rest_resource_uri(ob),
"comment", { "id" => ob.id.to_s })
end
@@ -1763,34 +1773,34 @@
return rest_response(400, :object => ob) unless ob.save
end
- rest_get_request(ob, "comment", user, rest_resource_uri(ob), "comment", { "id" => ob.id.to_s })
+ rest_get_request(ob, "comment", opts[:user], rest_resource_uri(ob), "comment", { "id" => ob.id.to_s })
end
-def post_comment(req_uri, rules, user, query)
- comment_aux('create', req_uri, rules, user, query)
+def post_comment(opts)
+ comment_aux('create', opts)
end
-def put_comment(req_uri, rules, user, query)
- comment_aux('update', req_uri, rules, user, query)
+def put_comment(opts)
+ comment_aux('update', opts)
end
-def delete_comment(req_uri, rules, user, query)
- comment_aux('destroy', req_uri, rules, user, query)
+def delete_comment(opts)
+ comment_aux('destroy', opts)
end
# Favourites
-def favourite_aux(action, req_uri, rules, user, query)
+def favourite_aux(action, opts)
# Obtain object
case action
when 'create':
- return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'Bookmark', user, nil)
+ return rest_response(401) unless Authorization.is_authorized_for_type?('create', 'Bookmark', opts[:user], nil)
- ob = Bookmark.new(:user => user)
+ ob = Bookmark.new(:user => opts[:user])
when 'read', 'update', 'destroy':
- ob = obtain_rest_resource('Bookmark', query['id'], query['version'], user, action)
+ ob = obtain_rest_resource('Bookmark', opts[:query]['id'], opts[:query]['version'], opts[:user], action)
else
raise "Invalid action '#{action}'"
end
@@ -1809,31 +1819,31 @@
if target
return rest_response(400) unless [Blob, Pack, Workflow].include?(target.class)
- return rest_response(401) unless Authorization.is_authorized_for_type?(action, 'Bookmark', user, target)
+ return rest_response(401) unless Authorization.is_authorized_for_type?(action, 'Bookmark', opts[:user], target)
ob.bookmarkable = target
end
return rest_response(400, :object => ob) unless ob.save
end
- rest_get_request(ob, "favourite", user, rest_resource_uri(ob), "favourite", { "id" => ob.id.to_s })
+ rest_get_request(ob, "favourite", opts[:user], rest_resource_uri(ob), "favourite", { "id" => ob.id.to_s })
end
-def post_favourite(req_uri, rules, user, query)
- favourite_aux('create', req_uri, rules, user, query)
+def post_favourite(opts)
+ favourite_aux('create', opts)
end
-def put_favourite(req_uri, rules, user, query)
- favourite_aux('update', req_uri, rules, user, query)
+def put_favourite(opts)
+ favourite_aux('update', opts)
end
-def delete_favourite(req_uri, rules, user, query)
- favourite_aux('destroy', req_uri, rules, user, query)
+def delete_favourite(opts)
+ favourite_aux('destroy', opts)
end
# Call dispatcher
-def rest_call_request(req_uri, rules, user, query)
- eval("#{rules['Function']}(req_uri, rules, user, query)")
+def rest_call_request(req_uri, format, rules, user, query)
+ eval("#{rules['Function']}(:req_uri => req_uri, :format => format, :rules => rules, :user => user, :query => query)")
end