From cbf39f97e4236bfa36c74e445071c91851ef2b5b Mon Sep 17 00:00:00 2001
From: Marcela Ribeiro de Oliveira <mro15@inf.ufpr.br>
Date: Wed, 5 Jul 2017 10:47:27 -0300
Subject: [PATCH] route to show submissions

---
 app/controllers/concerns/submission_controller.rb | 10 ++++++++++
 app/controllers/v1/learning_objects_controller.rb |  3 ++-
 app/policies/submission_policy.rb                 |  5 +++++
 config/routes.rb                                  |  1 +
 4 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/app/controllers/concerns/submission_controller.rb b/app/controllers/concerns/submission_controller.rb
index 3bb83748..72481197 100644
--- a/app/controllers/concerns/submission_controller.rb
+++ b/app/controllers/concerns/submission_controller.rb
@@ -4,6 +4,7 @@ module SubmissionController
 
     included do
         before_action :set_new_submission, only: :submit
+        before_action :set_submission, only: :show_submission
         before_action :authorize!
     end
 
@@ -22,6 +23,11 @@ module SubmissionController
         end
     end
 
+    def show_submission
+      return render status: :ok if @learning_object.draft? || @learning_object.published?
+      render json: @learning_object
+    end
+
     private
 
     def submitted
@@ -32,4 +38,8 @@ module SubmissionController
         @learning_object = LearningObject.find(params[:id])
     end
 
+    def set_submission
+      @learning_object ||= LearningObject.find(params[:id])
+    end
+
 end
diff --git a/app/controllers/v1/learning_objects_controller.rb b/app/controllers/v1/learning_objects_controller.rb
index 739e9489..1639ae35 100644
--- a/app/controllers/v1/learning_objects_controller.rb
+++ b/app/controllers/v1/learning_objects_controller.rb
@@ -11,10 +11,11 @@ class V1::LearningObjectsController < ApplicationController
   include ::StageableController
   include ::SubmissionController
 
-  before_action :authenticate_user!, only: [:create, :update, :destroy, :tagging, :untagging, :submit, :submission]
+  before_action :authenticate_user!, only: [:create, :update, :destroy, :tagging, :untagging, :submit, :submission, :show_submission]
   before_action :set_learning_object, only: [:show, :update, :destroy, :subjecting, :unsubjecting, :add_stages, :remove_stages]
   before_action :set_new_learning_object, only: [:index, :submissions]
   before_action :set_new_submission, only: :submit
+  before_action :set_submission, only: :show_submission
   before_action :authorize!, except: [:create, :tagging, :untagging, :download, :magnetlink]
   before_action :set_paper_trail_whodunnit, except: [:index, :show]
 
diff --git a/app/policies/submission_policy.rb b/app/policies/submission_policy.rb
index 9018431b..345ec5e5 100644
--- a/app/policies/submission_policy.rb
+++ b/app/policies/submission_policy.rb
@@ -9,4 +9,9 @@ module SubmissionPolicy
     record if user_can_moderate?
   end
 
+  def show_submission?
+    return false if user.nil?
+    record if user_can_moderate?
+  end
+
 end
diff --git a/config/routes.rb b/config/routes.rb
index d86ea9a0..0f1be127 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -64,6 +64,7 @@ Rails.application.routes.draw do
     end
     member do
         post :submit
+        get :show_submission
     end
   end
 
-- 
GitLab