Skip to content

Commit 08859c5

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

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

src/SlackDriver.php

Lines changed: 12 additions & 6 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 {
@@ -263,24 +271,22 @@ public function sendPayload($payload)
263271
}
264272

265273
/**
266-
* @param $message
274+
* @param $message
267275
* @param array $additionalParameters
268276
* @param \BotMan\BotMan\Messages\Incoming\IncomingMessage $matchingMessage
269277
* @return array
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

279285
return $bot->sendPayload($payload);
280286
}
281287

282288
/**
283-
* @param $message
289+
* @param $message
284290
* @param array $additionalParameters
285291
* @param \BotMan\BotMan\Messages\Incoming\IncomingMessage $matchingMessage
286292
* @return array

src/SlackRTMDriver.php

Lines changed: 10 additions & 6 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,
@@ -269,7 +275,7 @@ public function buildServicePayload($message, $matchingMessage, $additionalParam
269275
],
270276
]);
271277

272-
// else check if is a path
278+
// else check if is a path
273279
} elseif ($attachment instanceof BotManFile && file_exists($attachment->getUrl())) {
274280
$this->file = (new File())
275281
->setTitle(basename($attachment->getUrl()))
@@ -301,16 +307,14 @@ public function sendPayload($payload)
301307
}
302308

303309
/**
304-
* @param $message
310+
* @param $message
305311
* @param array $additionalParameters
306312
* @param IncomingMessage $matchingMessage
307313
* @return SlackRTMDriver
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
}
@@ -406,7 +410,7 @@ public function getClient()
406410
/**
407411
* Low-level method to perform driver specific API requests.
408412
*
409-
* @param $endpoint
413+
* @param $endpoint
410414
* @param array $parameters
411415
* @param IncomingMessage $matchingMessage
412416
* @return \React\Promise\PromiseInterface

0 commit comments

Comments
 (0)