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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user