Skip to content
Snippets Groups Projects
Commit ce9a034f authored by Mauricio Giacomini Girardello's avatar Mauricio Giacomini Girardello
Browse files

create builder for collection models

parent 9b160a10
No related branches found
No related tags found
No related merge requests found
class CollectionBuilder
extend RepositoriesProxy
##
# receive a list of ids and return a list of collections
def self.build(objects = [])
lo = []
objects.each do |object|
unless object['rid'].blank?
o = Rails.cache.fetch(cache_key(object['rid'], object['last_modified']))
o = collection_repository.find object['rid'] if o.nil?
lo << o
end
end
lo
end
def self.build_from_orientdb(args = {})
lo = nil
unless args.nil?
# cache object when build
lo = Rails.cache.fetch(cache_key(args['@rid'], args['last_modified']), expires_in: 12.hours) do
obj = Collection.new(
learning_objects: LearningObjectBuilder.build(args['learning_objects'] || []),
privacy: args['privacy'],
name: args['name'],
id: args['@rid']
)
obj.created_at = DateTime.strptime(args['created_at'], "%Y-%m-%d %H:%M:%S") unless args['created_at'].nil?
obj.last_modified = DateTime.strptime(args['last_modified'], "%Y-%m-%d %H:%M:%S") unless args['last_modified'].nil?
obj
end
end
lo
end
def self.cache_key(rid, last_modified)
rid + '/' + last_modified
end
end
......@@ -4,7 +4,7 @@ module OrientDb
include OrientDb::Methods::FinderMethods
def build_object(args={})
Collection.new(map_object_hash(args))
CollectionBuilder.build_from_orientdb args
end
def save(collection = Collection.new)
......@@ -85,17 +85,6 @@ module OrientDb
private
def map_object_hash(hash={})
{
created_at: hash['created_at'],
last_modified: hash['last_modified'],
learning_objects: hash['created_at'],
privacy: hash['privacy'],
name: hash['name'],
id: hash['@rid']
}
end
def odb_class
'Collection'
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