Skip to content
Snippets Groups Projects
activities_controller.rb 850 B
Newer Older
class V1::ActivitiesController < ApplicationController
  before_action :authenticate_user!, only: [:my_activities]

  # GET v1/activities
  # GET v1/activities.json
  def index
    render json: PublicActivity::Activity.includes(:owner).order('created_at DESC').all
  # GET v1/users/1/activities
  # GET v1/users/1/activities.json
  def user_activities
    render json: activities(resource_model)
  def resource_model
    resource, id = request.path.split('/')[2, 3]
    resource_model = resource.singularize.classify.constantize
    resource_model.find(id)
  end

  def activities(object)
    condition = '(owner_type = :type AND owner_id = :id) OR (recipient_type = :type AND recipient_id = :id)'
    PublicActivity::Activity.order('created_at DESC').where(condition, {type: object.class.to_s, id: object.id}).all
  end