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