Class: Lita::Handlers::Mingle

Inherits:
Handler
  • Object
show all
Includes:
MingleHelpers::API, MingleHelpers::Regex
Defined in:
lib/lita/handlers/mingle.rb

Constant Summary

Constants included from MingleHelpers::Regex

MingleHelpers::Regex::CREATE_CARD_PATTERN, MingleHelpers::Regex::LIST_PROJECTS_PATTERN, MingleHelpers::Regex::UPDATE_CARD_PATTERN

Instance Method Summary collapse

Instance Method Details

#create_card(response) ⇒ Object



45
46
47
48
49
50
51
52
53
54
# File 'lib/lita/handlers/mingle.rb', line 45

def create_card(response)
  data = response.match_data
  begin
    mingle = Client.new config.server, config.user, config.hmac_token
    url = mingle.create_card data['project'], name: data['name'], type: data['card_type']
    response.reply t('card.create.reply', url: url)
  rescue
    response.reply t('card.create.error', administrator: config.administrator)
  end
end

#list_projects(response) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/lita/handlers/mingle.rb', line 33

def list_projects(response)
  mingle = Client.new config.server, config.user, config.hmac_token
  projects = mingle.projects
  message = projects.each.inject('') do |list, hash|
    list << t('project.list.reply', id: hash[:identifier], name: hash[:name]) + "\n"
    list
  end
  response.reply message.prepend 'PROJECT ID -- NAME' + "\n"
rescue
  response.reply t('project.list.error', administrator: config.administrator)
end

#update_card(response) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/lita/handlers/mingle.rb', line 56

def update_card(response)
  data = response.match_data
  begin
    mingle = Client.new config.server, config.user, config.hmac_token
    card = mingle.card(data['project'], data['card_num']).to_h
    url = mingle.update_card data['project'], data['card_num'], name: card[:name],
                                                                type: card[:type],
                                                                description: data['description']
    response.reply t('card.update.reply', url: url)
  rescue
    response.reply t('card.update.error', administrator: config.administrator)
  end
end