lib/ruboty/trello.rb in ruboty-trello-0.1.4 vs lib/ruboty/trello.rb in ruboty-trello-0.1.5
- old
+ new
@@ -6,11 +6,11 @@
end
module Ruboty
module Handlers
class Trello < Base
- on /trello\s+b\s+(?<board_name>.*)\s+l\s+(?<list_name>.*)\s+c\s+(?<name>.*)\z/i, name: 'trello', description: 'Add card to Trello'
+ on /trello\s+b\s+(?<board_name>.*?)\s+l\s+(?<list_name>.*?)\s+(lb\s+(?<label_name>.*?)\s+)?c\s+(?<name>.*)\z/i, name: 'trello', description: 'Add card to Trello'
def trello(message)
me = ::Trello::Member.find('me')
board = me.boards.find { |board| board.name == message[:board_name] }
@@ -23,19 +23,22 @@
if list.nil?
message.reply "List '#{message[:list_name]}' not found"
return
end
+ label = board.labels.find { |label| label.name == message[:label_name] }
+ label_id = label&.id
+
member_id = nil
if ENV['TRELLO_AUTO_ASSIGN'] && message.from_name
sender = message.from_name.downcase
member = board.members.find do |member|
member.username.downcase == sender || member.full_name.downcase.include?(sender)
end
- member_id = member.try(:id)
+ member_id = member&.id
end
- new_card = ::Trello::Card.create(name: message[:name], list_id: list.id, member_ids: member_id)
+ new_card = ::Trello::Card.create(name: message[:name], list_id: list.id, card_labels: label_id, member_ids: member_id)
if new_card.short_url
prefix = ENV['TRELLO_RESPONSE_PREFIX'] || 'Created'
message.reply "#{prefix} #{new_card.short_url}"
end
end