From 73031b0a8f4096568b467d79f3248f4ae1d5e9fa Mon Sep 17 00:00:00 2001
From: Bruno Nocera Zanette <bnzanette@inf.ufpr.br>
Date: Tue, 25 Aug 2015 16:41:26 -0300
Subject: [PATCH] Add Like count to LearningObject's show page

---
 app/controllers/learning_objects_controller.rb | 3 +++
 app/repositories/orient_db/edge_repository.rb  | 4 ++++
 app/views/learning_objects/show.html.erb       | 3 ++-
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb
index 7e22a79d..5a24be9b 100644
--- a/app/controllers/learning_objects_controller.rb
+++ b/app/controllers/learning_objects_controller.rb
@@ -4,6 +4,9 @@ class LearningObjectsController < ApplicationController
 
   def show
     @object = repository.for(:object).get_by_dspaceid params[:id]
+    unless @object.nil?
+      @like_counts = repository.for(:edge).get_in_edges_count "ELike", @object.first["@rid"]
+    end
   end
 
   def new
diff --git a/app/repositories/orient_db/edge_repository.rb b/app/repositories/orient_db/edge_repository.rb
index ccf67a96..0cdcdf68 100644
--- a/app/repositories/orient_db/edge_repository.rb
+++ b/app/repositories/orient_db/edge_repository.rb
@@ -1,6 +1,10 @@
 module OrientDb
   class EdgeRepository < Base
 
+    def get_in_edges_count(edge_class, id)
+      OrientDb::Client.instance.query "SELECT COUNT(@rid) FROM #{edge_class} WHERE in = #{id}"
+    end
+
     def create_like_edge(from_id, to_id)
       OrientDb::Client.instance.command "CREATE EDGE ELike FROM #{from_id} TO #{to_id}"
     end
diff --git a/app/views/learning_objects/show.html.erb b/app/views/learning_objects/show.html.erb
index d7be6bc6..e7e9b781 100644
--- a/app/views/learning_objects/show.html.erb
+++ b/app/views/learning_objects/show.html.erb
@@ -17,4 +17,5 @@
     { action: "create", controller: "graph_tests" },
     method: :post,
     params: { from_id: " #14:0", to_id: get_object_property(@object,"@rid") }
-) %>
+)%>
+Total Curtir: <%= get_object_property(@like_counts,"COUNT") %>
-- 
GitLab