From 162095c1b4d28cd21bc817f0ce8c93087311ef01 Mon Sep 17 00:00:00 2001
From: Alexandre Arias <apa13@inf.ufpr.br>
Date: Wed, 7 Oct 2015 08:37:07 -0300
Subject: [PATCH] integralisation of complaints repository

Signed-off-by: Alexandre Arias <apa13@inf.ufpr.br>
---
 app/controllers/complaints_controller.rb           | 4 +++-
 app/repositories/orient_db/complaint_repository.rb | 6 +++---
 app/views/complaints/_form.html.erb                | 3 +++
 config/initializers/repositories/repositories.rb   | 3 +++
 4 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/app/controllers/complaints_controller.rb b/app/controllers/complaints_controller.rb
index dc7dfd32a..26f48b71b 100644
--- a/app/controllers/complaints_controller.rb
+++ b/app/controllers/complaints_controller.rb
@@ -5,7 +5,9 @@ class ComplaintsController < ApplicationController
   # POST /complaints.json
   def create
     @complaint = Complaint.new(complaint_params)
-  
+    @complaint.user = current_user
+    @complaint.object = params[:object]
+    
     respond_to do |format|
       if complaint_repository.report @complaint
         format.html { redirect_to @complaint, notice: 'complaint was successfully created.' }
diff --git a/app/repositories/orient_db/complaint_repository.rb b/app/repositories/orient_db/complaint_repository.rb
index c7616b9d4..267b800cd 100644
--- a/app/repositories/orient_db/complaint_repository.rb
+++ b/app/repositories/orient_db/complaint_repository.rb
@@ -4,7 +4,7 @@ module OrientDb
     include RepositoriesProxy
 
       def report(complaint)
-        if edge_exists? (odb_class, complaint.user.id, complaint.object.id)
+        if edge_exists?(odb_class, complaint.user.id, complaint.object.id)
           raise "The user has already been reported"
         end
 
@@ -12,10 +12,10 @@ module OrientDb
       end
 
       def destroy(object)
-        if !edge_exists? (odb_class, complaint.user.id, complaint.object.id)
+        if !edge_exists?(odb_class, complaint.user.id, complaint.object.id)
           raise "The user has not already been reported"
         end
-        
+
         connection.command "DELETE EDGE Complaint FROM #{complaint.user.id} TO #{complaint.object.id}"
       end
 
diff --git a/app/views/complaints/_form.html.erb b/app/views/complaints/_form.html.erb
index 9b61b68bb..6abcde32d 100644
--- a/app/views/complaints/_form.html.erb
+++ b/app/views/complaints/_form.html.erb
@@ -20,7 +20,10 @@
       </div>
 
   </div>
+
+  <%= f.hidden_field :object, value: @learning_object %>
   </fieldset>
+
   <div align="center" class="ls-btn-primary">
     <%= f.submit "Salvar" %>
     <%= link_to "Fechar", class:"btn-success" %>
diff --git a/config/initializers/repositories/repositories.rb b/config/initializers/repositories/repositories.rb
index f6666e218..f7d3c35d3 100644
--- a/config/initializers/repositories/repositories.rb
+++ b/config/initializers/repositories/repositories.rb
@@ -29,10 +29,12 @@ Repository::Environments.create :development do |repository|
   repository.register :attribute, OrientDb::AttributeRepository.new(OrientDb::Client.instance)
   repository.register :collection, OrientDb::CollectionRepository.new(OrientDb::Client.instance)
   repository.register :carousel, ActiveRecord::CarouselRepository.new
+  repository.register :complaint, OrientDb::ComplaintRepository.new(OrientDb::Client.instance)
 end
 
 Repository::Environments.create :test do |repository|
   repository.register :carousel, ActiveRecord::CarouselRepository.new
+  repository.register :complaint, OrientDb::ComplaintRepository.new(OrientDb::Client.instance)
   repository.register :learning_object, OrientDb::LearningObjectRepository.new(OrientDb::Client.instance)
   repository.register :mainPage, OrientDb::MainPageRepository.new(OrientDb::Client.instance)
   repository.register :user, UserRepositoryProxy.new(OrientDb::UserRepository.new(OrientDb::Client.instance))
@@ -43,6 +45,7 @@ end
 
 Repository::Environments.create :production do |repository|
   repository.register :carousel, ActiveRecord::CarouselRepository.new
+  repository.register :complaint, OrientDb::ComplaintRepository.new(OrientDb::Client.instance)
   repository.register :learning_object, OrientDb::LearningObjectRepository.new(OrientDb::Client.instance)
   repository.register :mainPage, OrientDb::MainPageRepository.new(OrientDb::Client.instance)
   repository.register :user, UserRepositoryProxy.new(OrientDb::UserRepository.new(OrientDb::Client.instance))
-- 
GitLab