diff --git a/app/controllers/v1/learning_objects_complaints_controller.rb b/app/controllers/v1/learning_objects_complaints_controller.rb new file mode 100644 index 0000000000000000000000000000000000000000..372f60d6a5212bc0d560f0788475b957114717ed --- /dev/null +++ b/app/controllers/v1/learning_objects_complaints_controller.rb @@ -0,0 +1,30 @@ +class V1::LearningObjectsComplaintsController < ApplicationController + + include ::DeletedObjectsController + include ::Paginator + + before_action :set_complaint, only: [:show, :show_related , :reject, :accept] + + # GET v1/learning_objects_complaints + def index + complaints_curator = paginate Complaint + + base_date = Date.new(2022, 1, 1) + + complaints_priority = ComplaintReason.joins(:complaints).select("complainable_id, SUM(complaint_reasons.priority)") + .where("complaints.created_at >= ?", base_date).group("complainable_id").order("sum DESC") + + complaints_curator = [] + + complaints_priority.each do |complainable| + + # Select all complaints related to the complainable_id (attributes that have been sumed) + complaints_curator << ComplaintReason.joins(:complaints).select("*") + .where("complaints.complainable_id = ? AND complaints.created_at >=?", complainable.complainable_id, base_date).order("complaint_reasons.priority DESC") + end + + render json: complaints_curator + + end + +end \ No newline at end of file diff --git a/app/controllers/v1/unlocked_achievements_controller.rb b/app/controllers/v1/unlocked_achievements_controller.rb index fd09b410adfe70547fe93f77552a8ed5e1d8621e..f3fe91ab1e98475c67bed892c6e6eb718d72f7a4 100644 --- a/app/controllers/v1/unlocked_achievements_controller.rb +++ b/app/controllers/v1/unlocked_achievements_controller.rb @@ -32,6 +32,15 @@ class V1::UnlockedAchievementsController < ApplicationController render json: @achievement end + # GET /v1/unlocked_achievements/user/:id + def show_specific + + # search for a all unlocked_achievements of a specific user + un_achievement = paginate User.find_by_id(params[:user_id]).unlocked_achievements + render json: un_achievement + + end + private def set_achievement diff --git a/config/database.yml b/config/database.yml index efe8ff8bba66a0ddb4282beca6915ad9b7294a48..28a1dd5ec120c436f9feb8ead10f1b666d7088c0 100644 --- a/config/database.yml +++ b/config/database.yml @@ -6,15 +6,15 @@ development: adapter: postgresql encoding: unicode database: portalmec_dev - username: arthur - password: senhadopostgres + username: luan + password: luanmatheus test: adapter: postgresql encoding: unicode database: portalmec_test - username: arthur - password: senhadopostgres + username: luan + password: luanmatheus # host: postgres production: diff --git a/config/routes.rb b/config/routes.rb index 31ad68eb4bb5bad97c80701f9bd54a59b0564943..c12a8216f2e7c68cb01ba1cff7eeb3e5ad0e693d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -142,6 +142,8 @@ Rails.application.routes.draw do end end + get 'unlocked_achievements/user/:user_id', to: 'unlocked_achievements#show_specific' + resources :activities, only: [:index, :show] do collection do get 'me' diff --git a/lib/tasks/achievement_dependency.rake b/lib/tasks/achievement_dependency.rake new file mode 100644 index 0000000000000000000000000000000000000000..fb732009b6e0abbbb7c550715a219a8547147402 --- /dev/null +++ b/lib/tasks/achievement_dependency.rake @@ -0,0 +1,17 @@ +namespace :achievement_dependency do + desc "Run the priority queue" + base_date = Date.new(2022, 1, 1) + + task :link_achievements => :environment do + + #create a queue of achievements that need to be linked + unlocked_achievements = UnlockedAchievement.joins(:achievement).select("achievements.id, achievements.name, + unlocked_achievements.id, unlocked_achievements.user_id").where("unlocked_achievements.id = achievements.id") + + puts ("----------------------------------------------------") + unlocked_achievements.each do |un_achievement| + puts "unlocked_achievement: #{un_achievement.name}" + end + + end +end