From 5bdd05b0866c70e46ca07e266fbfff741a07373e Mon Sep 17 00:00:00 2001
From: luandalmazo <lmtd21@inf.ufpr.br>
Date: Wed, 9 Nov 2022 11:47:35 -0300
Subject: [PATCH] Issue #22: CREATE requirements dependency

---
 .../v1/user_progresses_controller.rb          | 34 +++++++++++++++++++
 config/routes.rb                              |  1 +
 2 files changed, 35 insertions(+)
 create mode 100644 app/controllers/v1/user_progresses_controller.rb

diff --git a/app/controllers/v1/user_progresses_controller.rb b/app/controllers/v1/user_progresses_controller.rb
new file mode 100644
index 00000000..9c5473e3
--- /dev/null
+++ b/app/controllers/v1/user_progresses_controller.rb
@@ -0,0 +1,34 @@
+class V1::UserProgressesController < ApplicationController
+    include ::DeletedObjectsController
+    include ::Paginator
+
+    def index
+        progresses = Progress.joins("INNER JOIN requirements ON progresses.requirement_id = requirements.id")
+        .select("requirements.description, requirements.goal, progresses.user_id, progresses.requirement_id, progresses.counter, progresses.created_at, progresses.updated_at")
+        .where("counter < goal AND progresses.user_id = ?", params["user_id"])
+
+        if (progresses.length < 4)
+            all_progresses = Requirement.select("*").where("id IN (1,2,13)")
+
+        else
+            all_progresses = []
+            descriptions = []
+
+            last_string = "inicio"
+
+            progresses.all.each do |p|
+            
+                if (!p.requirement.description.last(5).include? last_string.last(5))
+                    all_progresses.append(p)
+                end
+
+                last_string = p.requirement.description    
+            end
+        end
+
+        render json: all_progresses
+    end
+
+
+
+end
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index a58747c8..32614385 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -247,5 +247,6 @@ Rails.application.routes.draw do
     get 'submissions/user_submissions/:user_id', to: 'submissions#user_submissions'
     get 'submissions/all_users_submissions/:user_id', to: 'submissions#all_users_submissions'
     get 'learning_objects_complaints/queue_user/:user_id', to: 'learning_objects_complaints#queue_user'
+    get 'user_progresses/:user_id', to: 'user_progresses#index'
   end
 end
-- 
GitLab