Sha256: 3eea5cd426655d5ba537348cd4b3f8ba49fd1089849f150dcabdc2782a1f0e37

Contents?: true

Size: 1.09 KB

Versions: 5

Compression:

Stored size: 1.09 KB

Contents

# frozen_string_literal: true

module Ruboty
  module Github
    module Actions
      class SearchIssues < Base
        def call
          if has_access_token?
            search
          else
            require_access_token
          end
        end

        private

        def search
          results = search_issues.items.each_with_object(["Searched: '#{query}'"]) do |item, object|
            repository_url = item[:repository_url].delete_prefix('https://api.github.com/repos/')

            object << "[#{repository_url}##{item[:number]}] #{item[:title]} (#{item[:user][:login]})\n#{item[:html_url]}"
          end

          message.reply(results.join("\n"))
        rescue Octokit::Unauthorized
          message.reply('Failed in authentication (401)')
        rescue Octokit::NotFound
          message.reply('Could not find that repository')
        rescue StandardError => e
          message.reply("Failed by #{e.class}")
        end

        def query
          message[:query]
        end

        def search_issues
          client.search_issues(query)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ruboty-qiita-github-0.3.4 lib/ruboty/github/actions/search_issues.rb
ruboty-qiita-github-0.3.3 lib/ruboty/github/actions/search_issues.rb
ruboty-qiita-github-0.3.2 lib/ruboty/github/actions/search_issues.rb
ruboty-qiita-github-0.3.1 lib/ruboty/github/actions/search_issues.rb
ruboty-qiita-github-0.3.0 lib/ruboty/github/actions/search_issues.rb