diff --git a/app/builders/institution_builder.rb b/app/builders/institution_builder.rb index 294c4ffd40a86fda0803ae2b48e45f0e7e856c0c..df639251ad92ffe84ebe17a4395825ca692b3b39 100644 --- a/app/builders/institution_builder.rb +++ b/app/builders/institution_builder.rb @@ -10,9 +10,7 @@ class InstitutionBuilder institutions.each do |institution| unless institution['@rid'].blank? o = Rails.cache.fetch(cache_key(institution['@rid'], institution['last_modified'])) unless institution['last_modified'].blank? - o = institution_repository.find institution['@rid'] if o.nil? - array << o end end diff --git a/app/repositories/orient_db/institution_repository.rb b/app/repositories/orient_db/institution_repository.rb index cee684a7f684872eaf2397b991e6be26c63f6285..56d841fdb58635a0306bde84e60273aa138b0172 100644 --- a/app/repositories/orient_db/institution_repository.rb +++ b/app/repositories/orient_db/institution_repository.rb @@ -4,7 +4,7 @@ module OrientDb def create(institution) institution = connection.command sprintf("INSERT INTO Institution (name, created_at, last_modified, country, city, description, thumbnail, address) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", - institution.name, Time.now, Time.now, institution.country, institution.city, institution.description, institution.thumbnail, institution.address ) + institution.name, Time.now, Time.now, institution.country, institution.city, institution.description, institution.thumbnail, institution.address) find(institution["result"][0]["@rid"]) || false end @@ -21,16 +21,23 @@ module OrientDb # else return nil # def associated_with(object) - return InstitutionBuilder.build get_edges_end('BelongsTo', 'out', object.rid) if object.class == User - return User.find(get_edges_end('BelongsTo', 'in', object.id).map{|user| user['p_id']}) if object.class == Institution + return associated_institutions(object) if object.class == User + return associated_users(object) if object.class == Institution return nil end + def associated_institutions(user) + InstitutionBuilder.build get_edges_end('BelongsTo', 'out', user.rid) + end + + def associated_users(institution) + User.find(get_edges_end('BelongsTo', 'in', institution.id).map { |user| user['p_id'] }) + end + def add_user(user, institution) unless edge_exists? "BelongsTo", user.rid, institution.id create_edge "BelongsTo", user.rid, institution.id end - institution end