- Stop using `break` in a block - it doesn't work. The failure here was hidden because it was within a `defer` block, so would not cause a server error
- Refactor the error handling so that the error is passed back to Slack and displayed to the user
- Return specific error messages for user / message-history / message errors
- Tidy up the SlackCommandController to make all non-requestable methods private
- Add a test to ensure error messages are passed correctly to Slack
When creating a new Discourse post from slack with the `post` feature, record the
slack `ts` thread ID for the resulting topic post using an HTML comment to pass
the `ts` through.
When notifying slack of new Discourse posts, record the slack `ts` thread ID in
the post's topic if it has not yet been recorded. (Normally, this will be done
for the topic post, except where notifications are being posted for old topics
before this feature was created.)
Add a new rule filter `thread` which posts threaded responses to slack if there
is a `ts` recorded for the post topic.
Modify the `trigger_notifications` interface to enable other integrations to
implement similar functionality.
Present the `thread` rule in the help text and admin UI only for the slack
providers.
https://meta.discourse.org/t/optionally-threading-posts-to-parent-topic-in-slack-integration/150759
* Use Slack display names instead of the "name" field
The "name" field is the left-hand side of the email address in many
cases. This information is not otherwise available so we shouldn't
expose it in forum posts.
* Fall back to real_name, add comments
* Store users as a hash
This should avoid a lot of O(n) lookups
* Format user mentions with the correct name also
* Fix the tests (first try)
* Fix the tests (second try); add a test for user mentions
* Fix the tests (third try)
* Empty commit to trigger Travis
* Fix the tests (fourth try)
* Fix the tests (fifth try)
* Change spaces to underscores
* Updates per feedback