Skip to content
Snippets Groups Projects
Commit e5f9a75d authored by Mateus Rambo Strey's avatar Mateus Rambo Strey
Browse files

Merge branch 'feat-userReviews'

parents 0aa9f91e 87e816ba
No related branches found
No related tags found
No related merge requests found
......@@ -3,10 +3,9 @@ class V1::UsersController < ApplicationController
include ::DeletedObjectsController
include ::Paginator
before_action :set_user, only: [:show, :update, :destroy, :following, :learning_objects, :collections, :liked]
before_action :authenticate_user!, only: [:create, :update, :destroy, :following, :learning_objects, :collections, :liked]
before_action :authorize_user, only: [:learning_objects, :collections, :liked]
before_action :set_user, only: [:show, :update, :destroy, :following, :own_reviews, :received_reviews, :learning_objects, :collections, :liked]
before_action :authenticate_user!, only: [:create, :update, :destroy, :following, :own_reviews, :received_reviews, :learning_objects, :collections, :liked]
before_action :authorize_user, only: [:own_reviews, :received_reviews, :learning_objects, :collections, :liked]
# GET /v1/users
# GET /v1/users.json
......@@ -31,7 +30,6 @@ class V1::UsersController < ApplicationController
else
render json: user.errors, status: :unprocessable_entity
end
end
# PUT/PATCH /v1/users/1
......@@ -63,6 +61,14 @@ class V1::UsersController < ApplicationController
render json: w, root: 'follows', status: :ok
end
def own_reviews
render json: @user.own_reviews
end
def received_reviews
render json: @user.received_reviews
end
def learning_objects
render json: LearningObject.where(publisher: @user)
end
......
......@@ -104,6 +104,16 @@ class User < ApplicationRecord
lo
end
def own_reviews
Review.where(user_id: id)
end
def received_reviews
Review.joins('INNER JOIN learning_objects ON ' \
"learning_objects.publisher_id = #{id} AND " \
'reviews.reviewable_id = learning_objects.id')
end
# ~~~~ followable actions ~~~~ #
# An user can follow anothers users and collections
# Examples:
......
......@@ -9,6 +9,14 @@ class UserPolicy < ApplicationPolicy
record if user_exists?
end
def own_reviews?
record if same_user? || user.is_admin?
end
def received_reviews?
record if same_user? || user.is_admin?
end
def learning_objects?
record if same_user? || user.is_admin?
end
......
......@@ -68,6 +68,8 @@ Rails.application.routes.draw do
resources :bookmarks, module: 'users', only: [:index, :create, :destroy]
get 'following/:object_type', to: 'users#following'
get 'activities', to: 'activities#user_activities'
get 'reviews/own', to: 'users#own_reviews'
get 'reviews/received', to: 'users#received_reviews'
get 'learning_objects', to: 'users#learning_objects'
get 'collections', to: 'users#collections'
get 'liked', to: 'users#liked'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment