class Dude::ProjectManagement::Trello::FetchCurrentTasks
Attributes
client[R]
fetch_lists[R]
Public Class Methods
new(client, fetch_lists: nil)
click to toggle source
# File lib/dude/project_management/trello/fetch_current_tasks.rb, line 11 def initialize(client, fetch_lists: nil) @client = client @fetch_lists = fetch_lists || FetchLists.new(client) end
Public Instance Methods
call()
click to toggle source
# File lib/dude/project_management/trello/fetch_current_tasks.rb, line 17 def call lists = fetch_lists.call lists.map { |list| retrieve_list_issues(list) }.flatten end
Private Instance Methods
create_issue(issue, current_list)
click to toggle source
# File lib/dude/project_management/trello/fetch_current_tasks.rb, line 32 def create_issue(issue, current_list) Entities::Issue.new( id: issue['idShort'], title: issue['name'], description: issue['desc'], status: current_list['name'], assignee: members(issue) ) end
members(issue)
click to toggle source
# File lib/dude/project_management/trello/fetch_current_tasks.rb, line 42 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
retrieve_list_issues(list)
click to toggle source
# File lib/dude/project_management/trello/fetch_current_tasks.rb, line 26 def retrieve_list_issues(list) response = client.get("/1/lists/#{list['id']}/cards") body = JSON.parse(response.body) body.map { |issue| create_issue(issue, list) } end