Sha256: e89f526a524bc647dc72c81e5d9463c0d7fbfb35defd0ae325532efaebc638b4

Contents?: true

Size: 1.4 KB

Versions: 4

Compression:

Stored size: 1.4 KB

Contents

# frozen_string_literal: true

require_relative '../../command'

module Dri
  module Commands
    class Rm
      class Emoji < Dri::Command
        def initialize(options)
          @options = options
        end

        def execute(input: $stdin, output: $stdout)
          verify_config_exists
          
          remove = prompt.yes? "Are you sure you want to remove all #{emoji} award emojis from issues?"

          unless remove
            logger.info "Emojis kept in place 👍"
            exit 0
          end

          logger.info "Removing #{emoji} from issues..."

          spinner.start

          issues_with_award_emoji = api_client.fetch_triaged_failures(emoji: emoji, state: 'opened')

          spinner.stop

          issues_with_award_emoji.each do |issue|
            logger.info "Removing #{emoji} from #{issue["web_url"]}..."

            award_emoji_url = issue["_links"]["award_emoji"]

            response = api_client.fetch_awarded_emojis(award_emoji_url)

            emoji_found = response.find { |e| e['name'] == emoji && e['user']['username'] == username }

            if !emoji_found.nil?
              url = "#{award_emoji_url}/#{emoji_found["id"]}"
              api_client.delete_award_emoji(url)
            end
          end
          output.puts "Done! ✅"
          logger.success "Removed #{emoji} from #{issues_with_award_emoji.size} issue(s)."
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dri-0.1.3 lib/dri/commands/rm/emoji.rb
dri-0.1.2 lib/dri/commands/rm/emoji.rb
dri-0.1.1 lib/dri/commands/rm/emoji.rb
dri-0.1.0 lib/dri/commands/rm/emoji.rb