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