Skip to content
Snippets Groups Projects
Commit 2fdffc81 authored by Mateus Rambo Strey's avatar Mateus Rambo Strey
Browse files

add learning object cache

parent bea73b88
No related branches found
No related tags found
No related merge requests found
...@@ -47,10 +47,10 @@ module OrientDb ...@@ -47,10 +47,10 @@ module OrientDb
# list.each do |learning_object| # list.each do |learning_object|
# learning_object.inspect <LearningObject model> # learning_object.inspect <LearningObject model>
# end # end
def all # def all
learning_objects_hash = connection.query "SELECT FROM LearningObject" # learning_objects_hash = connection.query "SELECT FROM LearningObject"
build_objects(learning_objects_hash) || [] # build_objects(learning_objects_hash) || []
end # end
# Usage: # Usage:
# learning_object = repository.for(:learning_objects).get_by_dspace_id 123 # learning_object = repository.for(:learning_objects).get_by_dspace_id 123
...@@ -103,24 +103,37 @@ module OrientDb ...@@ -103,24 +103,37 @@ module OrientDb
FROM index:learningobject_search FROM index:learningobject_search
WHERE key LUCENE '#{qry}' WHERE key LUCENE '#{qry}'
", limit: 10000 ", limit: 10000
# learning_objects_hash = connection.query "#SELECT @rid.asString() FROM (
# SELECT EXPAND(rid) FROM index:learningobject_search
# WHERE key LUCENE '#{qry}'
# )", limit: 10000
build_objects(learning_objects_hash) || [] build_objects(learning_objects_hash) || []
end end
def build_object(args={}) def build_object(args={})
lo = nil lo = nil
unless args.nil? unless args.nil?
lo = LearningObject.new(:id => args["@rid"], # cache object when build
:name => args["name"], cache_key = args["@rid"] + '/' + args["last_modified"]
:description => args["description"], lo = Rails.cache.fetch(cache_key, expires_in: 12.hours) do
:thumbnail => args["thumbnail"], likes = args.has_key?("in_Likes") ? args["in_Likes"].size : 0
:created_at => args["created_at"], views = args.has_key?("in_Views") ? args["in_Views"].size : 0
:id_dspace => args["id_dspace"], LearningObject.new(
:type => args["type"], id: args["@rid"],
:bitstreams => args["bitstreams"], name: args["name"],
:metadata => args["metadata"], description: args["description"],
:last_modified => args["last_modified"]) thumbnail: args["thumbnail"],
lo.likes = args.has_key?("in_Likes") ? args["in_Likes"].size : 0 created_at: args["created_at"],
lo.views = args.has_key?("in_Views") ? args["in_Views"].size : 0 id_dspace: args["id_dspace"],
type: args["type"],
bitstreams: args["bitstreams"],
metadata: args["metadata"],
last_modified: args["last_modified"],
likes: likes,
views: views
)
end
end end
lo lo
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment