diff --git a/app/controllers/related_contents_controller.rb b/app/controllers/related_contents_controller.rb index 1ea9e02f9..8e2cd854d 100644 --- a/app/controllers/related_contents_controller.rb +++ b/app/controllers/related_contents_controller.rb @@ -3,6 +3,8 @@ class RelatedContentsController < ApplicationController skip_authorization_check + respond_to :html, :js + def create if relationable_object && related_object @relationable.relate_content(@related) @@ -15,6 +17,24 @@ class RelatedContentsController < ApplicationController redirect_to @relationable end + def flag + @related = RelatedContent.find_by(id: params[:id]) + + Flag.flag(current_user, @related) + Flag.flag(current_user, @related.opposite_related_content) + + render template: 'relationable/_refresh_flag_actions' + end + + def unflag + @related = RelatedContent.find_by(id: params[:id]) + + Flag.unflag(current_user, @related) + Flag.unflag(current_user, @related.opposite_related_content) + + render template: 'relationable/_refresh_flag_actions' + end + private def valid_url? diff --git a/config/routes.rb b/config/routes.rb index 429e5a862..40eb2e139 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -462,7 +462,12 @@ Rails.application.routes.draw do root to: "dashboard#index" end - resources :related_contents, only: [:create] + resources :related_contents, only: [:create] do + member do + put :flag + put :unflag + end + end # GraphQL get '/graphql', to: 'graphql#query'