From 691738c46fe30d82ae62962a37129094aa065415 Mon Sep 17 00:00:00 2001
From: Matheus Agio Nerone <man13@inf.ufpr.br>
Date: Mon, 9 Nov 2015 11:18:15 -0200
Subject: [PATCH] adding learning objects but not relating them to the user yet

Signed-off-by: Matheus Agio Nerone <man13@inf.ufpr.br>
---
 app/controllers/learning_objects_controller.rb     | 14 +++++++++++---
 app/controllers/users_controller.rb                |  1 +
 app/models/learning_object.rb                      |  3 ++-
 .../orient_db/learning_object_repository.rb        | 13 +++++++++----
 4 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb
index e7dc453e..99e2d531 100644
--- a/app/controllers/learning_objects_controller.rb
+++ b/app/controllers/learning_objects_controller.rb
@@ -29,12 +29,20 @@ class LearningObjectsController < ApplicationController
   # POST /learning_objects
   # POST /learning_objects.json
   def create
-    p params
-    gvghv
+    subjects = []
+    learning_object_params[:subjects].each do |subject|
+      subjects << subject_repository.find_by_name(subject)
+    end
     @learning_object = LearningObject.new(learning_object_params)
+    @learning_object.subjects = subjects
+    @learning_object.created_at = Time.now
+    @learning_object.type = 'video'
+    @learning_object.author = current_user.name
+    @learning_object.publisher = current_user
 
     respond_to do |format|
-      if learning_object_repository.save @learning_object
+      if learning_object_repository.create @learning_object
+        learning_object_repository.create_relations(@learning_object)
         format.html { redirect_to me_users_path, notice: 'Learning object was successfully created.' }
       else
         format.html { render :new }
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index ecc8069a..3a7eaa56 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -19,6 +19,7 @@ class UsersController < ApplicationController
   end
 
   def me
+    asd
     @objects = current_user.learning_objects
     @bookmarks = current_user.bookmarks
     @groups = [
diff --git a/app/models/learning_object.rb b/app/models/learning_object.rb
index c121c029..76e10d79 100644
--- a/app/models/learning_object.rb
+++ b/app/models/learning_object.rb
@@ -5,7 +5,8 @@ class LearningObject
   attr_accessor :id, :id_dspace, :rid, :name, :author, :description,
                 :published_at, :thumbnail, :created_at, :last_modified,
                 :type, :grade_level, :bitstreams, :metadata, :likes, :views,
-                :downloads, :subjects, :attributes, :score, :publisher
+                :downloads, :subjects, :attributes, :score, :publisher,
+                :school_level
 
   validates_presence_of :name, :created_at, :type, :likes, :views, :downloads
   validates_numericality_of :likes, greater_than_or_equal_to: 0
diff --git a/app/repositories/orient_db/learning_object_repository.rb b/app/repositories/orient_db/learning_object_repository.rb
index 96eb55b7..8e5f7286 100644
--- a/app/repositories/orient_db/learning_object_repository.rb
+++ b/app/repositories/orient_db/learning_object_repository.rb
@@ -115,7 +115,7 @@ module OrientDb
       result = get_edges_end("PublishedBy", "out", learning_object.id)
       result = result.first
 
-      unless result.empty?
+      unless result.blank?
         if result["@class"] == "Institution"
           institution_repository.build_object(result)
         else
@@ -167,9 +167,14 @@ module OrientDb
       unless learning_object.attributes.empty?
         edges << create_edges_from_array("HasAttr", learning_object.id, learning_object.attributes, true)
       end
-
-      if !learning_object.publisher.nil? && !edge_exists?("PublishedBy", learning_object.id, learning_object.publisher.id)
-        edges << create_edge("PublishedBy", learning_object.id, learning_object.publisher.id)
+      p_id = ''
+      if learning_object.publisher.class.name == 'User'
+        p_id = learning_object.publisher.rid
+      else
+        p_id = learning_object.publisher.id
+      end
+      if !learning_object.publisher.nil? && !edge_exists?("PublishedBy", learning_object.id, p_id)
+        edges << create_edge("PublishedBy", learning_object.id, p_id)
       end
       edges.flatten
     end
-- 
GitLab