parent
							
								
									74ead7d106
								
							
						
					
					
						commit
						45d3b32488
					
				@ -10,8 +10,9 @@ class Settings::FeaturedTagsController < Settings::BaseController
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def create
 | 
					  def create
 | 
				
			||||||
    if !featured_tag_exists?
 | 
					    @featured_tag = CreateFeaturedTagService.new.call(current_account, featured_tag_params[:name], force: false)
 | 
				
			||||||
      CreateFeaturedTagService.new.call(current_account, featured_tag_params[:name])
 | 
					
 | 
				
			||||||
 | 
					    if @featured_tag.valid?
 | 
				
			||||||
      redirect_to settings_featured_tags_path
 | 
					      redirect_to settings_featured_tags_path
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      set_featured_tags
 | 
					      set_featured_tags
 | 
				
			||||||
@ -28,10 +29,6 @@ class Settings::FeaturedTagsController < Settings::BaseController
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  private
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def featured_tag_exists?
 | 
					 | 
				
			||||||
    current_account.featured_tags.by_name(featured_tag_params[:name]).exists?
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def set_featured_tag
 | 
					  def set_featured_tag
 | 
				
			||||||
    @featured_tag = current_account.featured_tags.find(params[:id])
 | 
					    @featured_tag = current_account.featured_tags.find(params[:id])
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
				
			|||||||
@ -3,14 +3,18 @@
 | 
				
			|||||||
class CreateFeaturedTagService < BaseService
 | 
					class CreateFeaturedTagService < BaseService
 | 
				
			||||||
  include Payloadable
 | 
					  include Payloadable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def call(account, name)
 | 
					  def call(account, name, force: true)
 | 
				
			||||||
    @account = account
 | 
					    @account = account
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    FeaturedTag.create!(account: account, name: name).tap do |featured_tag|
 | 
					    FeaturedTag.create!(account: account, name: name).tap do |featured_tag|
 | 
				
			||||||
      ActivityPub::AccountRawDistributionWorker.perform_async(build_json(featured_tag), account.id) if @account.local?
 | 
					      ActivityPub::AccountRawDistributionWorker.perform_async(build_json(featured_tag), account.id) if @account.local?
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  rescue ActiveRecord::RecordNotUnique
 | 
					  rescue ActiveRecord::RecordNotUnique, ActiveRecord::RecordInvalid => e
 | 
				
			||||||
 | 
					    if force && e.is_a(ActiveRecord::RecordNotUnique)
 | 
				
			||||||
      FeaturedTag.by_name(name).find_by!(account: account)
 | 
					      FeaturedTag.by_name(name).find_by!(account: account)
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      account.featured_tags.new(name: name)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private
 | 
					  private
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user