public SlackResponse ProcessRequest(SlackRequest request) { try { if (request.text == null) { return new SlackResponse("Please type some text containing a jira ticket key"); } var jiraKeys = JiraTicketRegex.Matches(request.text).Cast<Match>(); if (!jiraKeys.Any()) { return new SlackResponse("Couldn't find any ticket keys"); } var attachments = jiraKeys.Select(match => new SlackResponse.Attachment { fallback = _jiraUrl + match, text = string.Format("<{0}{1}|{1}>", _jiraUrl, match.ToString().ToUpper()), color = "good" }); return new SlackResponse { response_type = "in_channel", attachments = attachments }; } catch (Exception ex) { return new SlackResponse($"Unable to parse request text '{request.text}', got an error '{ex.StackTrace}'"); } }
public SlackResponse Post(SlackRequest request) { return _jiraCommand.ProcessRequest(request); }