Class: Lita::Handlers::Jira

Inherits:
Handler
  • Object
show all
Includes:
JiraHelper::Issue, JiraHelper::Misc, JiraHelper::Regex
Defined in:
lib/lita/handlers/jira.rb

Overview

Main handler

Constant Summary

Constants included from JiraHelper::Regex

JiraHelper::Regex::COMMENT_PATTERN, JiraHelper::Regex::EMAIL_PATTERN, JiraHelper::Regex::ISSUE_PATTERN, JiraHelper::Regex::PROJECT_PATTERN, JiraHelper::Regex::SUBJECT_PATTERN, JiraHelper::Regex::SUMMARY_PATTERN

Instance Method Summary collapse

Methods included from JiraHelper::Misc

#client

Methods included from JiraHelper::Issue

#create_issue, #fetch_issue, #fetch_project, #format_issue

Instance Method Details

#comment(response) ⇒ Object



66
67
68
69
70
71
72
# File 'lib/lita/handlers/jira.rb', line 66

def comment(response)
  issue = fetch_issue(response.match_data['issue'])
  return response.reply(t('error.request')) unless issue
  comment = issue.comments.build
  comment.save!(body: response.match_data['comment'])
  response.reply(t('comment.added', issue: issue.key))
end

#details(response) ⇒ Object



60
61
62
63
64
# File 'lib/lita/handlers/jira.rb', line 60

def details(response)
  issue = fetch_issue(response.match_data['issue'])
  return response.reply(t('error.request')) unless issue
  response.reply(format_issue(issue))
end

#summary(response) ⇒ Object



54
55
56
57
58
# File 'lib/lita/handlers/jira.rb', line 54

def summary(response)
  issue = fetch_issue(response.match_data['issue'])
  return response.reply(t('error.request')) unless issue
  response.reply(t('issue.summary', key: issue.key, summary: issue.summary))
end

#todo(response) ⇒ Object



74
75
76
77
78
79
80
# File 'lib/lita/handlers/jira.rb', line 74

def todo(response)
  issue = create_issue(response.match_data['project'],
                       response.match_data['subject'],
                       response.match_data['summary'])
  return response.reply(t('error.request')) unless issue
  response.reply(t('issue.created', key: issue.key))
end