links_controller.rb 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # frozen_string_literal: true
  2. class Api::V1::Admin::Trends::LinksController < Api::V1::Trends::LinksController
  3. include Authorization
  4. before_action -> { authorize_if_got_token! :'admin:read' }, only: :index
  5. before_action -> { authorize_if_got_token! :'admin:write' }, except: :index
  6. after_action :verify_authorized, except: :index
  7. def index
  8. if current_user&.can?(:manage_taxonomies)
  9. render json: @links, each_serializer: REST::Admin::Trends::LinkSerializer
  10. else
  11. super
  12. end
  13. end
  14. def approve
  15. authorize :preview_card, :review?
  16. link = PreviewCard.find(params[:id])
  17. link.update(trendable: true)
  18. render json: link, serializer: REST::Admin::Trends::LinkSerializer
  19. end
  20. def reject
  21. authorize :preview_card, :review?
  22. link = PreviewCard.find(params[:id])
  23. link.update(trendable: false)
  24. render json: link, serializer: REST::Admin::Trends::LinkSerializer
  25. end
  26. private
  27. def enabled?
  28. super || current_user&.can?(:manage_taxonomies)
  29. end
  30. def links_from_trends
  31. if current_user&.can?(:manage_taxonomies)
  32. Trends.links.query
  33. else
  34. super
  35. end
  36. end
  37. end