From 95efd9c0cfbbca5a40df723c771f3cfaccbbf73d Mon Sep 17 00:00:00 2001 From: Mauricio Giacomini Girardello <mauriciogiacomini4@gmail.com> Date: Tue, 20 Oct 2015 09:59:34 -0200 Subject: [PATCH] adding save method for collection repository --- app/controllers/learning_objects_controller.rb | 11 +++++++++-- .../orient_db/collection_repository.rb | 14 +++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb index 2217721f1..af0edaa22 100644 --- a/app/controllers/learning_objects_controller.rb +++ b/app/controllers/learning_objects_controller.rb @@ -1,7 +1,7 @@ class LearningObjectsController < ApplicationController include Reportable - before_action :set_learning_object, only: [:show, :edit, :update, :destroy, :like] + before_action :set_learning_object, only: [:show, :edit, :update, :destroy, :like, :bookmark] after_action :increment_learning_object_views, only: [:show] before_action :authenticate_user!, except: [:index, :show, :like] @@ -86,7 +86,14 @@ class LearningObjectsController < ApplicationController learning_object_repository.report current_user, @learning_object, message, description end - def bookmark + def bookmarks + bookmarks = current_user.bookmarks + bookmarks.add @learning_object + collection_repository.save bookmarks + + if request.xhr? + render json: {id: params[:id]} + end end private diff --git a/app/repositories/orient_db/collection_repository.rb b/app/repositories/orient_db/collection_repository.rb index 63b51407f..6a725450a 100644 --- a/app/repositories/orient_db/collection_repository.rb +++ b/app/repositories/orient_db/collection_repository.rb @@ -6,6 +6,13 @@ module OrientDb Collection.new(map_object_hash(args)) end + def save(collection = Collection.new) + collection.learning_objects.each do |learning_object| + query = sprintf("update %s add learning_objects = %s", collection.id, learning_object.id) + connection.command query + end + end + def create_bookmarks_collection(user) bookmarks = Bookmarks.new(owner: user) create bookmarks @@ -30,12 +37,13 @@ module OrientDb end def all(user) - objects = build_objects get_edges_end('BelongsTo', 'in', user.rid) + query = sprintf("select * from (select expand(in('BelongsTo')) from %s) where name<>'Bookmarks'", user.rid) + objects = build_objects connection.query(query) end def bookmarks(user) - # TODO: change bookmarks query - result = all user + query = sprintf("select * from (select expand(in('BelongsTo')) from %s) where name='Bookmarks'", user.rid) + result = build_objects(connection.query(query)) if !result.empty? return result.first end -- GitLab