Sha256: 512383f4e06874582e02320819a998c2d29d820dca8a8625b38abed0b7ec2f24

Contents?: true

Size: 1.05 KB

Versions: 4

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Dude
  module ProjectManagement
    module Trello
      class FetchCurrentTask
        def initialize(client, id:)
          @client = client
          @id = id
        end

        def call
          response = client.get("/1/boards/#{Dude::SETTINGS.dig(:jira, :board_id)}/cards/#{id}")
          create_issue JSON.parse(response.body)
        end

        private

        attr_reader :client, :id

        def create_issue(issue)
          Entities::Issue.new(
            id: issue['idShort'],
            title: issue['name'],
            description: issue['desc'],
            status: Dude::SETTINGS[:in_progress_list_name], # OMG, let's fix this later
            assignee: members(issue),
            url: issue['shortUrl']
          )
        end

        def members(issue)
          people = issue['idMembers'].map do |person|
            JSON.parse(client.get("/1/members/#{person}", fields: 'fullName').body)['fullName']
          end
          people.empty? ? nil : people.join(', ')
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dude-cli-2.1.0 lib/dude/project_management/trello/fetch_current_task.rb
dude-cli-2.1.0.alpha5 lib/dude/project_management/trello/fetch_current_task.rb
dude-cli-2.1.0.alpha4 lib/dude/project_management/trello/fetch_current_task.rb
dude-cli-2.1.0.alpha3 lib/dude/project_management/trello/fetch_current_task.rb