Skip to content

Commit c1e2a14

Browse files
committed
Always reply in existing threads
1 parent 8be4609 commit c1e2a14

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

src/SlackDriver.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,15 @@ private function convertQuestion(Question $question)
236236
*/
237237
public function buildServicePayload($message, $matchingMessage, $additionalParameters = [])
238238
{
239-
if (! Collection::make($matchingMessage->getPayload())->has('team_domain')) {
239+
$matchingMessagePayload = $matchingMessage->getPayload();
240+
241+
// If the matching message is in a thread, reply there
242+
$thread_ts = $matchingMessagePayload->get('thread_ts');
243+
if (! empty($thread_ts)) {
244+
$additionalParameters['thread_ts'] = $thread_ts;
245+
}
246+
247+
if (! Collection::make($matchingMessagePayload)->has('team_domain')) {
240248
$this->resultType = self::RESULT_TOKEN;
241249
$payload = $this->replyWithToken($message, $matchingMessage, $additionalParameters);
242250
} else {
@@ -270,9 +278,7 @@ public function sendPayload($payload)
270278
*/
271279
public function replyInThread($message, $additionalParameters, $matchingMessage, BotMan $bot)
272280
{
273-
$additionalParameters['thread_ts'] = ! empty($matchingMessage->getPayload()->get('thread_ts'))
274-
? $matchingMessage->getPayload()->get('thread_ts')
275-
: $matchingMessage->getPayload()->get('ts');
281+
$additionalParameters['thread_ts'] = $matchingMessage->getPayload()->get('ts');
276282

277283
$payload = $this->buildServicePayload($message, $matchingMessage, $additionalParameters);
278284

src/SlackRTMDriver.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,12 @@ protected function isBot()
250250
*/
251251
public function buildServicePayload($message, $matchingMessage, $additionalParameters = [])
252252
{
253+
// If the matching message is in a thread, reply there
254+
$thread_ts = $matchingMessage->getPayload()->get('thread_ts');
255+
if (! empty($thread_ts)) {
256+
$additionalParameters['thread_ts'] = $thread_ts;
257+
}
258+
253259
$parameters = array_replace_recursive([
254260
'channel' => $matchingMessage->getRecipient() ?: $matchingMessage->getSender(),
255261
'as_user' => true,
@@ -308,9 +314,7 @@ public function sendPayload($payload)
308314
*/
309315
public function replyInThread($message, $additionalParameters, $matchingMessage)
310316
{
311-
$additionalParameters['thread_ts'] = ! empty($matchingMessage->getPayload()->get('thread_ts'))
312-
? $matchingMessage->getPayload()->get('thread_ts')
313-
: $matchingMessage->getPayload()->get('ts');
317+
$additionalParameters['thread_ts'] = $matchingMessage->getPayload()->get('ts');
314318

315319
return $this->reply($message, $matchingMessage, $additionalParameters);
316320
}

0 commit comments

Comments
 (0)